Using JDOMapper tool to generate the CASTOR mapping file
We have defined the java class EmpBean.java already as part of
part 2. Here are the steps to generate the mapping file for
that:
- Download JDOMapper from Source Forge Web
site.
- Extract the zip/tar and open jdomapper.bat (or
jdomapper.sh). Add the path to your web-inf/classes directory
(where you have the EmpBean.class). I added:
"D:/STRUTS/Part3/StrutsNetBeansSampleP3/WEB-INF/classes/"
- run this batch file (or the shell script). It will open the
GUI interface.
- Refer to the screen shot at the JDOMapper web site.
- Add your class by clicking on project—add class (You can
remove the existing default classes by clicking on the delete
button at top)
- Give your complete class name such as
"com.openstack.struts.testapp.EmpBean"
- It will add the class to the left pane. You can double click
on the class name to add information such as the database table
it belongs to. Similarly at every filed level you can specify
the column name and data type. You can leave the rest of the
options to default for now.
- Click on the preview mapping button at the top. It will
generate the mapping file. Save it as mapping.xml under your
classes directory (where you stored the database.xml file).
Here is how my mapping file looks:
<?xml version="1.0" encoding="UTF-8"?>
<mapping>
<class auto-complete="false"
name="com.openstack.struts.testapp.EmpBean" access="shared">
<description>Default mapping for class
com.openstack.struts.testapp.EmpBean</description>
<map-to table="employee" xml="emp-bean"/>
<field required="false" transient="false" direct="false"
name="shortname" type="string" lazy="false">
<sql name="shortname" dirty="check" type="char"
read-only="false"/>
<bind-xml node="element" name="shortname"/>
</field>
<field required="false" transient="false" direct="false"
name="lastname" type="string" lazy="false">
<sql name="lastname" dirty="check" type="char"
read-only="false"/>
<bind-xml node="element" name="lastname"/>
</field>
<field required="false" transient="false" direct="false"
name="firstname" type="string" lazy="false">
<sql name="firstname" dirty="check" type="char"
read-only="false"/>
<bind-xml node="element" name="firstname"/>
</field>
</class>
</mapping>
That’s it, we've changed our STRUTS application to use CASTOR
JDO for database access. You can compile all the files, and
test the JSP Testform.jsp, as discussed in part 2.
Things to consider when using CASTOR with STRUTS
In this article
we invoked Castor JDO calls directly from the STRUTS Action
class. While one starts thinking about extracting the "common"
parts into a separate class, an important point to consider is
thread-safety. Because by its very nature a J2EE web application
will have concurrent access from multiple client requests. Here
I want to demonstrate one easy solution. Please look at the
files CastorJDOFactory.java and TestActionHandler.java
here.
If you plan to use JNDI and underlying app server for locating
the data source; refer to the Castor website for an example on "PostgreSQL 7.3,
JNDI and Tomcat".
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
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.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|