This Xsl template generates Java code for mapping objects to an Oracle database. You supply an Xml file with the Details of the table, and Java Class to generate for dealing with that table. An XSL processor, like Xalan, is used to read the template and xml files, and output a Java source file. There are many ways to arranges table to store a set of data. This template does not attempt to cover all cases- but requires that the database layout follow a pattern.
The tables should be indexed by artifical primay keys of type NUMBER. A table should contain the foreign key column to any sub type tables that add data to it in a one to one relationship. For example when a PERSON table is linked to a ADDRESS table; the PERSON table should have column that contains the primary key of the ADRESS row that contains the address information for this person. Also. when a table row can belong to another table row in a many to one relationship then it should contain a foreign key column to it's parent. For example; a PERSON table that is linked to a CREDIT_CARD table. The person can have many credit cards; the CREDIT_CARD table would have a column that points to the primary key that owns it on the PERSON table. Each tables primary key is generated by an Oracle sequence.
The Java classes generated follow a pattern where there is one Java object for each table, and the object represents one row on that table. If the object is instantiated by passing the db key in the constructor it will query the db and populate its properties. New rows are created by calling the no-args constructor, calling the misc set() methods, and then calling store(). Calling the store() method also calls the store() method on any linked objects. Deleting the row is done by callling delete(). Any linked tables are also deleted. See the Simple example for more information.