根據(jù)Informa的API說法,Informa提供了基于數(shù)據(jù)庫的持久化方式,這些持久化方法是通過Hibernate支持的。首先從Informa的源代碼包的build.xml開始追蹤。關(guān)于Informa的持久化,在Informa的zip包下有兩個(gè)文件和兩個(gè)目錄需要注意: A.build.xml:Ant腳本文件 B.build.properties-template:Ant腳本文件需要用到的屬性文件模板 C.config目錄:包含了hibernate.properties文件模板 D.sql目錄:其下的schema目錄包含了hsqldb,mysql,postgres數(shù)據(jù)庫的ddl和屬性文件 ★Informa的數(shù)據(jù)庫構(gòu)建過程 在Informa的build.xml文件中,有3個(gè)target是和數(shù)據(jù)庫DDL相關(guān)的,它們分別是: A.hibernate.initdb:初始化數(shù)據(jù)庫連接 B.hibernate.dbscheme.generate:根據(jù)用戶的指定生成對應(yīng)的ddl文件 C.hibernate.dbscheme:把hbm文件導(dǎo)出成為ddl文件 這三個(gè)target的執(zhí)行順序是: initdb--->dbscheme.generate--->dbscheme 或者 initdb--->dbscheme 其中dbscheme是關(guān)鍵,它的主要工作包括: A.創(chuàng)建用于保存DDL輸出結(jié)果的scripts目錄 B.定義一個(gè)名為schemaexport的Ant task,用于把hbm文件導(dǎo)出為ddl文件 C.執(zhí)行schemaexport任務(wù),把classes目錄下的hbm文件export成DDL,并輸出到指定的位置 D.輸出執(zhí)行結(jié)果信息 為了盡量避免在Ant腳本中hardcode一些設(shè)置值,Ant腳本通過下列語句來引入屬性文件
Ant中允許自定義任務(wù),這個(gè)功能通過taskdef標(biāo)記來完成
這個(gè)task通過Hibernate的內(nèi)置的SchemaExportTask來完成。我們要給他制定classpath路徑。定義完了任務(wù)后,就可以在下面使用它了