Posted on 2006-11-10 11:32
城市劣人 阅读(2833)
评论(3) 编辑 收藏
已经转移到
好·色之徒--我的博客、我的生活通常如果采用Spring来管理hibernate.cfg.xml开发时:
Spring的配置文件中有SessionFactory的配置,主要是通过Spring来建立SessionFactory环境的。定义了数据源dataSource、mappingResources、hibernateProperties,举例如下:
com/iplan/portal/start/pojo/hbm/User.hbm.xml
org.hibernate.dialect.HSQLDialecttrue1trueorg.hibernate.cache.EhCacheProvider 3似乎hibernate.cfg.xml没有存在的必要了,因为它的功能上面都已经体现了。其实不然,上面的配置适合开发时用,属性mappingResources可以随意增删需要测试的部分。
部署时,可以替换属性mappingResources,因为.hbm.xml文件可能数量多、位置杂,何不用hibernate.cfg.xml统一管理呢,也使得spring配置文件“干净”一些。配置如下:
classpath:hibernate.cfg.xmlhibernate.cfg.xml中则设置.hbm.xml内容。
另外:在开发时hibernate.cfg.xml的配置可以是这样:
org.hibernate.dialect.HSQLDialectorg.hsqldb.jdbcDriverjdbc:hsqldb:hsql://localhost:9003/hsqldbsatrue感觉上和上面的spring配置有所重叠的地方,不过它主要是用于开发时的设置。可以采用hibernate中的工具类(hbm2ddl)SchemaExport,通过hbm来生成ddl。
管理类如下:
public class ManageDB {
private SessionFactory sessionFactory;
private Session session;
{
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
session = sessionFactory.openSession();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
public void execute() {
Configuration conf = new Configuration().configure("/hibernate.cfg.xml");
SchemaExport dbExport=new SchemaExport(conf);
dbExport.create(true, true);
}
public static void main(String[] args){
ManageDB db =new ManageDB();
db.execute();
}
}
这样通过运行ManageDB类,对hibernate.cfg.xml中设置的hbm来生成ddl。生成以后,在spring中的mappingResources中对应追加hbm,用于开发测试。进行下一步时,在hibernate.cfg.xml中追加相应的hbm,删除已经生成ddl的hbm... 到项目最终,spring替换上面提到的configLocation属性,hibernate.cfg.xml中则只保留所有的hbm就可以了。
Spring hibernate开发时的一些小建议 有个论坛