★ wanayoo — archive 1999 http://java.webdeveloper.com/Map_Java_Objects/Nouvelle recherche | Portail wanayoo

advertisement

Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  

Browse DevX
DevX Updates - Sign Up Here


Partners & Affiliates












advertisement


Reviews :

Mapping Java Objects to a Database with Castor-JDO:

by Keld H. Hansen

Preface

As a Java-programmer you'll probably find it easy to work with objects. To create an instance of a class one can simply use "new" and maybe a couple of setter-methods. To save your instances, so you can continue working with them tomorrow might be trickier. One solution would be to serialize your objects and store them in XML format in a flat file. If you've got many objects with complex relations then you'll soon find out that this is not the way to go. If you've got a database system and you know your SQL, then you have a solution that works. On the other hand: what if you could simply say "save my objects", and they'd be in your data base? That'd be nice, right?

If you continue reading I'll disrobe the tool that will enable the "save my objects" slight of hand. To save an instance of class "Media" to a database you'd have to code:

      db.begin();
      Media m = new Media(1,"DVD");
      db.create(m);
      db.commit();
      db.close();

Harry Potter would love this spell and the tool that can make this come true is Castor-JDO

JDO - the history

JDO spelled out means Java Data Objects, and Sun has an API and a specification (JSR12) with this name. This API addresses how to persist (store permanently) Java objects on a back-end, which could be a mainframe, a database or something else. Castor-JDO, which was released in December 1999, before Sun's API, has a more focused approach. Its purpose is to automate binding Java objects to a relational database. Since Castor and Sun use the same name, JDO, for their APIs, there have been some misunderstandings and discussions about who has the rights to the name, and what comprises "true JDO". The resources section of the article has some links where you can follow some of the arguments.

This article will focus only on Castor-JDO, which in my opinion is the simplest API to learn, and therefore a good way to be introduced to the object-relational mapping world. By the way: Castor-JDO has a twin brother, Castor-XML, which can serialize a Java bean object into XML, and back again. See the resources section for more on this useful feature. When I use "Castor" in this article I refer to Castor-JDO.   

So this is about how you automate the persistence of Java objects into a relational database. What we'd really like is to let someone else write the SQL and setup the JDBC API to manage the database, thereby allowing us to focus on handling the Java objects and the business logic.

If you're like me, you're excited about this possibility, then I think it's fair to stress the following. You will need to know about database tables, columns, foreign keys etc. in order to set up Castor properly. The more you know about the good, the bad and the ugly of database design and SQL coding the better you will be able to take benefit from what Castor offers. Don't be scared, in this article I'll go step-by-step through the basics of setting up your application for Castor, and when it's done and the train is on the rails, you'll be halfway to Hogwart's School of Wizardry before you know it!

Introduction
Installation of MySQL
Installation of Castor-JDO
Transient and Persistent Objects,The database configuration file,The mapping file
Handling one-to-many relations
Handling many-to-many relations
Reading from the database
The Source of Magic
Conclusion

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Java Studio Creator 2: Trading Ease-of-use for Performance
Is Java Studio Creator 2 the IDE beginning and small-scale application developers have been looking for? With its low cost, drag-and-drop GUI, and easy database connectivity, the answer may be yes—but be prepared to make some trade-offs.

New Applet:

MultiTab JApplet 2.0
MultiTab JApplet 2.0 is a highly configurable Java Applet that allows you to display multiple Web pages with the minimum of screen space taken, using tabular navigation.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

 Microsoft Office Professional Developer Portal
 DevX Showcase for IBM DB2
 IBM developerWorks Solution Center
 Adobe LiveCycle Developer Source
 Intel Software Network
 IBM Rational Tools and Learning Showcase
 IBM Online Training Resource Center
 Tablet PC Developer
 Destination .NET
 DevX Showcase for IBM DeveloperWorks Linux
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

ADV: Sun's new breakthrough server
IBM Withdraws OS/2
Nessus 3.0 Closes the Book on Open Source
Oracle, IBM Developers Buddy Up Over Unix
Janus Lives Through BrandZ
Oracle Fortifies Its Code Base
HP's Open Arms For OpenLDAP
IBM Adds More to Rational Portfolio
Google Jabbers And Jingles
Eclipse Release to Sync Web Development

Custom Web Controls Demystified, Part 2
How to Handle Java Finalization's Memory-Retention Issues
Keep the Bugs Out of Your Derby
What You Need to Begin an SOA Deployment with IBM Rational SDP
Combine Microsoft Project and Visual Studio Team System for a One-two Punch of Productivity
Code Tuning: Seeing Is Believing
XML Onboard: The Developer Potential of Office 12 for Commercial Enterprise Software
Coming Soon to VMware, Microsoft, and Xen: AMD Virtualization Technology Solves Virtualization Challenges
Walkthrough: Using DB2 Stored Procedures with PHP
Take the Pain Out of Deployments with ClickOnce

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About


JupiterWeb networks:

internet.comearthweb.comDevx.comGraphics.com

Search JupiterWeb:

Jupitermedia Corporation has three divisions:
Jupiterimages, JupiterWeb and JupiterResearch


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Jupitermedia Corporate Info | Newsletters | Tech Jobs | Shopping | E-mail Offers