剖析Hibernate Extensions
Hibernate還是比較常用的,于是我研究了一下Hibernate Extensions,在這里拿出來和大家分享一下,希望對大家有用。
Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
通過Hibernate項目中提供的幾個命令行工具(他們也被當(dāng)作項目的一部分不斷得到維護),還有XDoclet,Middlegen和AndroMDA內(nèi)置的對Hibernate的支持,可以在幾個不同的環(huán)境(SQL,java代碼,xml映射文件)中進行相互轉(zhuǎn)換(roundtrip)。
Hibernate的主發(fā)行包中附帶了最重要的工具(甚至在Hibernate內(nèi)部也可以快速調(diào)用這個工具):從映射文件到DDL schema的生成器(也就是SchemaExport和hbm2ddl)
Hibernate項目直接提供的其他工具在一個單獨的發(fā)行包中發(fā)布,Hibernate Extensions。這個發(fā)行包包含了下列任務(wù)的工具:
◆從映射文件到Java源代碼的生成器(也就是CodeGenerator,hbm2java)
◆從已編譯的Java類或者帶有XDoclet標(biāo)記的Java源代碼生成映射文件(它們是MapGenerator,class2hbm)
實際上Hibernate Extensions里面還有一個工具:ddl2hbm。但是它已經(jīng)被廢棄了,已經(jīng)不再被維護了。Middlegen完成了同樣的任務(wù),并且更加出色。
對Hibernate提供支持的第三方工具有:
◆Middlegen (從現(xiàn)有的數(shù)據(jù)庫schema中生成映射文件)
◆AndroMDA ( 使用MDA思想(Model-Driven Architecture ,模型驅(qū)動體系)的代碼生成器,它從UML圖和其XML/XMI等價形式中生成持久化類的代碼)
這些第三方工具沒有在這篇指南中說明。請查閱Hibernate 網(wǎng)站得到關(guān)于它們目前的情況。(Hibernate主發(fā)行包中有關(guān)于整個網(wǎng)站的快照)
【編輯推薦】