Hi Michael,

You have asked a lot of interesting questions. If you want to pursue this study, you will probably get more help on the derby-dev mailing list. A couple responses inline...

Michael Köndling wrote:
hello,

I'm a computer science student from Germany and I would like to ask the derby developers a couple of questions about the implementation aspects of jdbc.

I have checked out the 10.5 branch.

1. Are there any (detailed) design documents? I already had a look at the overall architecture page.
2. What where the key design decisions with the jdbc-implementation part?
e.g. What is the main idea behind all these inheritance hierarchies (for Drivers, Connections and so on)? InternalDriver seems to be a factory that is used from a lot of places - what was the idea behind that?
Two major feature axes drive the design of the JDBC implementation:

1) Derby runs in two configurations: embedded and client-server. Each of these configurations gives rise to a family of drivers.

2) Derby runs at four JDBC levels, depending on the capabilities of the underlying Java VM: JSR169 (small, CDC devices), JDBC 2.0 (for the deprecated JDK 1.1-1.3 platforms), JDBC 3.0 (for JDK 1.4 and Java 5), and JDBC 4.0 (for Java 6 and 7). Each of these levels gives rise to a separate driver within a driver family. Note, however, that the JSR169 driver exists only in the embedded family.
3. Where is the jdbc-driver located in the source code and what are the main classes?
A good place to start is the public api for the JDBC 4.0 implementation: http://db.apache.org/derby/docs/10.5/publishedapi/jdbc4/ The embedded driver is called EmbeddedDriver and the client-server driver is called ClientDriver.
4. How are ResultSets implemented?
See org.apache.derby.impl.jdbc.EmbedResultSet The following command builds the Derby javadoc:

 ant -quiet javadoc

Hope this helps,
-Rick

I would appreciate any information.
Thany you very much,
Michael

Reply via email to