新聞中心
Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate映射,包括介紹設(shè)置HSQLDB等方面。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有欽州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
我曾對(duì)Hibernate有很深刻的印象,但我遇到的一個(gè)問題是,在使用Hibernate進(jìn)行單元測試的數(shù)據(jù)映射時(shí),設(shè)法插入一個(gè)間接層。該附加層非常脆弱,編寫起來感到非常困難。實(shí)際部署版本簡單地通過了特定于Hibernate的實(shí)現(xiàn)。更壞的情況是,模擬版本比真正的“產(chǎn)品級(jí)”版本更復(fù)雜,只因?yàn)槟M版本里沒有基本對(duì)象存儲(chǔ)器和帶有Hibernate映射。
我也使用很多復(fù)雜的Hibernate查詢,想要對(duì)應(yīng)用程序的重要部分進(jìn)行單元測試。然而,對(duì)活動(dòng)的數(shù)據(jù)庫進(jìn)行測試不是好主意,因?yàn)檫@幾乎總是產(chǎn)生維護(hù)問題。另外,由于測試***互相獨(dú)立,在測試上下文數(shù)據(jù)中使用相同的主鍵意味著必須在每次測試前創(chuàng)建代碼來清理數(shù)據(jù)庫,當(dāng)涉及到大量關(guān)系時(shí)就成為一個(gè)實(shí)際問題。
通過使用HSQLDB和Hibernate強(qiáng)大的模式生成工具,能夠?qū)?yīng)用程序映射層進(jìn)行單元測試,并在對(duì)象查詢中找到不計(jì)其數(shù)的bug,這在以前手工測試時(shí)是做不到的。利用下面的技術(shù)概述,可以在開發(fā)過程中對(duì)整個(gè)應(yīng)用程序進(jìn)行測試,并且在測試有效區(qū)域內(nèi)沒有損害。
設(shè)置HSQLDB
以前使用HSQLDB 1.7.3.0 版。為了使用數(shù)據(jù)庫的內(nèi)存版本,需要激活org.hsqldb.jdbcDriver的靜態(tài)加載程序。當(dāng)獲得JDBC連接時(shí),就可以使用JDBC url例如jdbc:hspldb:mem:yourdb,這里’yourdb’就是想要使用的內(nèi)存數(shù)據(jù)庫的名稱。
因?yàn)槭褂肏ibernate (3.0 beta 4),所以我?guī)缀鯚o需接觸實(shí)際活動(dòng)的JDBC對(duì)象。相反,我可以讓Hibernate完成很多繁重的任務(wù),包括從Hibernate映射文件中自動(dòng)創(chuàng)建數(shù)據(jù)庫模式。因?yàn)镠ibernate創(chuàng)建自身專有的連接池,所以它會(huì)基于TestSchema類中的配置代碼自動(dòng)加載HSQLDB JDBC驅(qū)動(dòng)程序。下面就是該類的靜態(tài)的初始化程序。
- public class TestSchema {
- static {
- Configuration config = new Configuration().
- setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect").
- setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver").
- setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:baseball").
- setProperty("hibernate.connection.username", "sa").
- setProperty("hibernate.connection.password", "").
- setProperty("hibernate.connection.pool_size", "1").
- setProperty("hibernate.connection.autocommit", "true").
- setProperty("hibernate.cache.provider_class", "
org.hibernate.cache.HashtableCacheProvider").- setProperty("hibernate.hbm2ddl.auto", "create-drop").
- setProperty("hibernate.show_sql", "true").
- addClass(Player.class).
- addClass(BattingStint.class).
- addClass(FieldingStint.class).
- addClass(PitchingStint.class);
- HibernateUtil.setSessionFactory(config.buildSessionFactory());
- }
【編輯推薦】
- 淺析Hibernate orm框架
- Hibernate Callback簡單概括
- 概述Hibernate dbcp連接池使用方法
- Hibernate Shard三種策略剖析
- 討論Hibernate和模型對(duì)象
當(dāng)前文章:Hibernate映射簡單概述
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/ccdicep.html


咨詢
建站咨詢
