根据Informa的API说法,Informa提供了基于数据库的持久化方式,这些持久化方法是通过Hibernate支持的。首先从Informa的源代码包的build.xml开始追踪。关于Informa的持久化,在Informa的zip包下有两个文件和两个目录需要注意: A.build.xml:Ant脚本文件 B.build.properties-template:Ant脚本文件需要用到的属性文件模板 C.config目录:包含了hibernate.properties文件模板 D.sql目录:其下的schema目录包含了hsqldb,mysql,postgres数据库的ddl和属性文件 ★Informa的数据库构建过程 在Informa的build.xml文件中,有3个target是和数据库DDL相关的,它们分别是: A.hibernate.initdb:初始化数据库连接 B.hibernate.dbscheme.generate:根据用户的指定生成对应的ddl文件 C.hibernate.dbscheme:把hbm文件导出成为ddl文件 这三个target的执行顺序是: initdb--->dbscheme.generate--->dbscheme 或者 initdb--->dbscheme 其中dbscheme是关键,它的主要工作包括: A.创建用于保存DDL输出结果的scripts目录 B.定义一个名为schemaexport的Ant task,用于把hbm文件导出为ddl文件 C.执行schemaexport任务,把classes目录下的hbm文件export成DDL,并输出到指定的位置 D.输出执行结果信息 为了尽量避免在Ant脚本中hardcode一些设置值,Ant脚本通过下列语句来引入属性文件
Ant中允许自定义任务,这个功能通过taskdef标记来完成
这个task通过Hibernate的内置的SchemaExportTask来完成。我们要给他制定classpath路径。定义完了任务后,就可以在下面使用它了