You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Michael Köndling <m_...@yahoo.de> on 2009/12/08 01:15:11 UTC

Questions about the implementation

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?
3. Where is the jdbc-driver located in the source code and what are the 
main classes?
4. How are ResultSets implemented?

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

Re: Questions about the implementation

Posted by Rick Hillegas <Ri...@Sun.COM>.
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