和Hibernate的代码生成工具相比,用该插件生成了更多的类。这是优点,也可能是一些潜在的缺点,将在Trade-Offs 部分进行讨论。你可以在工程配置文件中选取要生成的类和它们所在的包的结构。我可以证实这点,但现在的发行版有个bug ,,无法访问Mac OS X上的配置界面。针对该bug的一个补丁已经做好了,但仍没有发布。
基于Hibernate Synchronizer网页上的例子,和以下这个类一起,用那些新的数据访问对象来试着把一些数据放入数据库中。看起来和标准的Hibernate代码生成工具生成的版本(在Hibernate: A Developer's Notebook一书的39-40页)很相似,甚至更简单一些。因为Hibernate Synchronizer生成的类为你的每个数据库操作都创建和提交一个新事务,因此在与此类似的简单情况下,你不需要自己来设置事务(当然,假如你需要把一组操作作为一个单独事务,有很多方法可以做到这点)这里是新版本的代码。
package com.oreilly.hh;import java.sql.Time; import java.util.Date;import net.sf.hibernate.HibernateException; import com.oreilly.hh.dao.TrackDAO;import com.oreilly.hh.dao._RootDAO; /** * Try creating some data using the Hibernate Synchronizer apPRoach. */public class CreateTest2 { public static void main(String[] args) throws HibernateException { // Load the configuration file _RootDAO.initialize(); // Create some sample data TrackDAO dao = new TrackDAO(); Track track = new Track("Russian Trance", "vol2/album610/track02.mp3", Time.valueOf("00:03:30"), new Date(), (short)0); dao.save(track); track = new Track("Video Killed the Radio Star", "vol2/album611/track12.mp3", Time.valueOf("00:03:49"), new Date(), (short)0); dao.save(track); // We don't even need a track variable, of course: dao.save(new Track("Gravity's Angel", "/vol2/album175/track03.mp3", Time.valueOf("00:06:06"), new Date(), (short)0)); }}
一旦把那些行变成注释后,再次运行程序。这次,也就是第三次运行成功。我在自己计算机上运行没有一点错误,数据已经保存到数据库中。运行 ant db 这个target(在Developer's Notebook一书的第一章有相应的解释)可以把表中所有的数据显示出来(不可否认,这也许有点简单),如图20中所示。假如你跟着这篇文章中顺序来做的,而不是跟着书中步骤一步一步来的,你需要先运行ant schema来创建数据库中的表,或是删除以前试验留下的数据。