标签:
好的工具可以使工作效率成倍提高。通过编写hbm.xml使用HibernateTool来生成java代码和sql脚本,以及配合hibernate的hbm2ddl.auto的配置,在项目初期,给工作带来很大的方便。
gradle可以集成ant的task,通过hbm.xml生成java类的task可以定义成如下:
task "codegen" << { ant.taskdef(name:‘hibernatetool‘, classname:‘org.hibernate.tool.ant.HibernateToolTask‘, classpath:configurations.compile.asPath) ant.hibernatetool(destdir:"src/main/java"){ configuration{ fileset(dir:"src/main/resources"){ include(name:‘**/*.hbm.xml‘) } } hbm2java(jdk5:true) } }
生成sql脚本的任务需要配置数据库连接,我使用了hibernate.cfg.xml。直觉告诉我应该可以抛开配置用groovy构建一个configuration,可惜我还不会。
task "schema"(dependsOn:processResources) <<{ ant.taskdef(name:‘hibernatetool‘, classname:‘org.hibernate.tool.ant.HibernateToolTask‘, classpath:configurations.compile.asPath) ant.hibernatetool(destdir:"$sourceSets.main.output.resourcesDir"){ annotationconfiguration(configurationfile:"$sourceSets.main.output.resourcesDir\\hibernate.cfg.xml") hbm2ddl(drop:"yes",outputfilename: ‘schema.sql‘) classpath { pathelement( path:"$sourceSets.main.output.resourcesDir") } } }
如果使用hsqldb,则只需要引入hsqldb的jar就行了,环境依赖少了,做dao层的单元测试很好用。不过因为程序运行的时候hsqldb的文件会被锁住,运行时就没有办法通过管理工具查看数据了。
task "hsqlMgnt" << { "java -classpath ${configurations.compile.asPath} org.hsqldb.util.DatabaseManager -driver org.hsqldb.jdbcDriver -url jdbc:hsqldb:data/data -user sa".execute() }
标签:
原文地址:http://my.oschina.net/amhuman/blog/530379