分析Java應(yīng)用程序和Hibernate
Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Java應(yīng)用程序和Hibernate,包括介紹org.hibernate.Session是主要的運(yùn)行時(shí)接口等方面。
Java應(yīng)用程序?qū)⒂成湮募糜跀?shù)據(jù)持久化的屬性文件集成到了一起。首先將Catalog.hbm.xml和hibernate.properties文件復(fù)制到同一個(gè)目錄。并將這個(gè)目錄加到CLASSPATH中。在Java應(yīng)用程序中使用import導(dǎo)入org.hibernate包和dom4j包。
org.hibernate.Session是主要的運(yùn)行時(shí)接口,它負(fù)責(zé)將Java應(yīng)用程序和Hibernate連接起來。你可以使用它在數(shù)據(jù)庫表中增加、獲得、更新和刪除XML數(shù)據(jù)。我們可以從一個(gè)SessionFactory中獲得一個(gè)Session對(duì)象。這個(gè) SessionFactory接口提供了openSession方法用來創(chuàng)建一個(gè)數(shù)據(jù)庫連接以及打開一個(gè)連接會(huì)話。org.hibernate.cfg.Configuration類用來指定配置屬性和創(chuàng)建一個(gè)SessionFactory的映射文件。下面的代碼將創(chuàng)建一個(gè)配置對(duì)象:
- Configuration config=new Configuration();
下面的代碼將映射文件catalog.hbm.xml加入到配置中:
- config.addFile("catalog.hbm.xml");
現(xiàn)在映射文件Catalog.hbm.xml以及JDBC屬性文件在相同的目錄,并且應(yīng)用程序使用配置對(duì)象獲得這此文件的信息。下面的代碼將創(chuàng)建一個(gè)SessionFactory對(duì)象:
- SessionFactory sessionFactory=config.buildSessioFactory();
接下來,將向使用SchemaExport工具創(chuàng)建的數(shù)據(jù)表中加入數(shù)據(jù),首先從SessionFactory對(duì)象中得到一個(gè)Session對(duì)象:
- Session sess =sessionFactory.openSession();
下面的代碼將得一個(gè)Transaction對(duì)象,我們可以使用這個(gè)對(duì)象向數(shù)據(jù)表中加入數(shù)據(jù):
- org.hibernate.Transaction tx = sess.beginTransaction();
使用DOM4J模式開始一個(gè)會(huì)話,第二個(gè)會(huì)話和***個(gè)主會(huì)話有同樣的連接、事務(wù)和上下文屬性:
- Session dom4jSession = session.getSession(EntityMode.DOM4J);
下面將創(chuàng)建一個(gè)SAXReader對(duì)象用于分析描述數(shù)據(jù)表的XML文檔。我們可以使用read(File)方法來分析catalog.xml文件,代碼如下:
- SAXReader saxReader = new SAXReader();
- Document document = saxReader.read(new File("c:/Hibernate/catalog.xml"));
下面的代碼將獲得文檔對(duì)象中catalog節(jié)點(diǎn)的列表,并且創(chuàng)建一個(gè)Iterator對(duì)象用于瀏覽列表中止數(shù)據(jù):
- List list = document.selectNodes("http://catalog");
- Iterator iter = list.iterator();
Iterate可以枚舉列表中的對(duì)象,并且從列表中獲得相應(yīng)的節(jié)點(diǎn)。我們可以使用save(String entityName,Object object)方法來將節(jié)點(diǎn)數(shù)據(jù)保存在數(shù)據(jù)庫中。以上介紹Java應(yīng)用程序和Hibernate。
【編輯推薦】