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