What about...
. . . Connecting to Oracle, or another favorite, shared,
or legacy database that doesn't happen to be MySQL
or HSQLDB? You've probably figured out that
it's just as easy. All you need to do is change the
hibernate.dialect setting in your
hibernate.properties to reflect the kind of
database you want to use. There are many dialects available, covering
every free and commercial database I can think of. These built-in
dialects are listed in Appendix C. If you need
to work with a more obscure database, you may have to write your own
dialect to support it, but that seems unlikely (and check to see if
anyone's already started that effort).
Once you've chosen the dialect,
you'll also need to set the
hibernate.connection properties (driver, URL,
username, and password — the other entries in Example 2-4 and Example 2-9) to the
proper values for establishing a JDBC connection to your chosen
database environment. If you're porting an existing
project to use Hibernate, you'll be able to obtain
these from the code or configuration of that project. And, naturally,
you'll need to put the database's
JDBC driver into your project's library directory.
Of course, if you're connecting to an existing or shared
database, you won't be using Hibernate to create the schema.
Instead, you'll write the mapping document to reflect the
existing schema, either by hand or with the help of a tool like
Middlegen (http://boss.bekk.no/
boss/middlegen), and then start working with the data in the
form of persistent objects, as described in Chapter 3.
You can even use Hibernate to talk to multiple databases at the same
time; you just need to create multiple
SessionFactory instances with separate
configurations. This goes beyond the simple, automatic configuration
we demonstrate in Chapter 3, but there are
examples in the Hibernate reference documentation. Of course, a
persistent object can only be associated with a single session at a
time, which means it can only be linked to a single database at once.
With clever, careful coding, though, you can copy or move objects
between different database systems, even with a different schema to
represent them. That's way out
of scope for this notebook, though!
Footnotes
[1] We're assuming
you've already generated the code shown in Example 2-3, or there won't be any Java
source to compile, and the schema generation will fail. The
schema target doesn't invoke
codegen to automatically generate code, in case
you've manually extended any of your generated
classes.
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.
|