Lambda the Ultimate

inactiveTopic First JDO implementation
started 6/3/2001; 12:47:37 PM - last post 6/24/2001; 1:50:20 AM
Ehud Lamm - First JDO implementation  blueArrow
6/3/2001; 12:47:37 PM (reads: 2900, responses: 9)
First JDO implementation
With Sunís new JDO standard, hand-coding SQL is not necessary. Now, developers can access databases through Java alone. The JDO standard defines an API that developers use to communicate with the database through Java code.


And now, just weeks after the Proposed Final Draft of the JDO specification has been submitted (May 10, 2001), the first JDO implementation to support the standard is available: Kodoô


Posted to OOP by Ehud Lamm on 6/3/01; 12:48:04 PM

John Lawter - Re: First JDO implementation  blueArrow
6/4/2001; 9:17:07 AM (reads: 2313, responses: 1)
With Sunís new JDO standard, hand-coding SQL is not necessary.

JDO would be more interesting if NeXT hadn't done it first with EOF.

Ehud Lamm - Re: First JDO implementation  blueArrow
6/4/2001; 10:31:57 AM (reads: 2371, responses: 0)
I didn't mean to imply this is something original. Not much in Java is.

Aren't JDO and VB's ADOs similar?

Adam Vandenberg - Re: First JDO implementation  blueArrow
6/4/2001; 2:04:36 PM (reads: 2289, responses: 0)
ADO doesn't do any mapping to SQL, it's more like Perl's DBI. It's a straightforward way to connect to databases and through SQL statements at them (which should usually be calls to Stored Procedures).

JDO looks like it's trying to do object-SQL mapping, right?

Neelan Choksi - Re: First JDO implementation  blueArrow
6/5/2001; 3:27:15 PM (reads: 2271, responses: 0)
There seems to be some confusion as to what exactly JDO is. JDO is a specification for transparently persisting java Objects to any data store. Emphasis on _transparently_. The developer writes a completely normal java class -- there are no special interfaces to implement, no base classes to extend from, no naming conventions to follow. JDO then uses a process called bytecode enhancement to modify the compiled class so that it can be stored and read by the JDO runtime.

The runtime itself consists of object-level methods like makePersistent(Object) and deletePersistent(Object) as well as a query facility in which queries are expressed as Strings of java code: i.e. "name == \"Fred" && (age < 15 || age > 30)". The product mentioned here, Kodo, is the first JDO implementation to support the Proposed Final Draft of the specification. It uses a relational database as the data storage mechanism. A free time-limited beta is available at http://www.techtrader.com/products/jdo.html.

Ehud Lamm - Re: First JDO implementation  blueArrow
6/6/2001; 2:19:16 AM (reads: 2269, responses: 0)
BTW, any good links to this "bytecode enhancement" process?

Abe White - Re: First JDO implementation  blueArrow
6/6/2001; 7:37:03 AM (reads: 2287, responses: 1)
Sure. The bytecode enhancement process is discussed in chapter 20 of the JDO Proposed Final Draft specification, available from http://access1.sun.com/jdo

TechTrader (the company that created Kodo) has actually open-sourced the bytecode toolkit it used to do the JDO enhancements; check out http://tt-bytecode.sourceforge.net

Note that this is NOT a JDO enhancer -- it is the low-level bytecode manipulation toolkit used to create the enhancer.

Hope that helps.

Ehud Lamm - Re: First JDO implementation  blueArrow
6/6/2001; 2:37:55 PM (reads: 2339, responses: 0)
Thanks. (BTW, Abe seems to be from the company behind Kodo)

Ehud Lamm - Re: First JDO implementation  blueArrow
6/15/2001; 5:47:19 AM (reads: 2219, responses: 0)
Another implementation: Judo is designed to be a pure-Java implementation of the Java Data Objects (JDO) while also containing Versant specific extensions on top of the standard features defined by JDO.

Ehud Lamm - Re: First JDO implementation  blueArrow
6/24/2001; 1:50:20 AM (reads: 2234, responses: 0)
FLASH! The JDO reference implementation milestone release is available for download. This first release is a limited functionality implementation of the file storage variant, and allows storage and retrieval of persistent instances. (no query or navigation, just storage and retrieval by OID or by extent.)

(The web page includes various other useful links about JDO, well worth checking out)