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

10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(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è)問(wèn)題是,在使用Hibernate進(jìn)行單元測(cè)試的數(shù)據(jù)映射時(shí),設(shè)法插入一個(gè)間接層。該附加層非常脆弱,編寫(xiě)起來(lái)感到非常困難。實(shí)際部署版本簡(jiǎn)單地通過(guò)了特定于Hibernate的實(shí)現(xiàn)。更壞的情況是,模擬版本比真正的“產(chǎn)品級(jí)”版本更復(fù)雜,只因?yàn)槟M版本里沒(méi)有基本對(duì)象存儲(chǔ)器和帶有Hibernate映射。
我也使用很多復(fù)雜的Hibernate查詢,想要對(duì)應(yīng)用程序的重要部分進(jìn)行單元測(cè)試。然而,對(duì)活動(dòng)的數(shù)據(jù)庫(kù)進(jìn)行測(cè)試不是好主意,因?yàn)檫@幾乎總是產(chǎn)生維護(hù)問(wèn)題。另外,由于測(cè)試***互相獨(dú)立,在測(cè)試上下文數(shù)據(jù)中使用相同的主鍵意味著必須在每次測(cè)試前創(chuàng)建代碼來(lái)清理數(shù)據(jù)庫(kù),當(dāng)涉及到大量關(guān)系時(shí)就成為一個(gè)實(shí)際問(wèn)題。
通過(guò)使用HSQLDB和Hibernate強(qiáng)大的模式生成工具,能夠?qū)?yīng)用程序映射層進(jìn)行單元測(cè)試,并在對(duì)象查詢中找到不計(jì)其數(shù)的bug,這在以前手工測(cè)試時(shí)是做不到的。利用下面的技術(shù)概述,可以在開(kāi)發(fā)過(guò)程中對(duì)整個(gè)應(yīng)用程序進(jìn)行測(cè)試,并且在測(cè)試有效區(qū)域內(nèi)沒(méi)有損害。
設(shè)置HSQLDB
以前使用HSQLDB 1.7.3.0 版。為了使用數(shù)據(jù)庫(kù)的內(nèi)存版本,需要激活org.hsqldb.jdbcDriver的靜態(tài)加載程序。當(dāng)獲得JDBC連接時(shí),就可以使用JDBC url例如jdbc:hspldb:mem:yourdb,這里’yourdb’就是想要使用的內(nèi)存數(shù)據(jù)庫(kù)的名稱。
因?yàn)槭褂肏ibernate (3.0 beta 4),所以我?guī)缀鯚o(wú)需接觸實(shí)際活動(dòng)的JDBC對(duì)象。相反,我可以讓Hibernate完成很多繁重的任務(wù),包括從Hibernate映射文件中自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)模式。因?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簡(jiǎn)單概括
- 概述Hibernate dbcp連接池使用方法
- Hibernate Shard三種策略剖析
- 討論Hibernate和模型對(duì)象
當(dāng)前名稱:Hibernate映射簡(jiǎn)單概述
網(wǎng)站路徑:http://www.fisionsoft.com.cn/article/ccdicep.html
其他資訊
- 利用Grep在Linux環(huán)境中快速搜索信息(linux中g(shù)rep的用法)
- 實(shí)時(shí)更新VPS賬號(hào)信息,保證無(wú)人機(jī)卡頓!(動(dòng)態(tài)vps賬號(hào))
- 韓國(guó)云計(jì)算技術(shù)的優(yōu)勢(shì)有哪些?
- 路由器設(shè)置賬號(hào)密碼,進(jìn)入路由器設(shè)置的用戶名和密碼是哪個(gè)用戶名和密碼的簡(jiǎn)單介紹
- 解決多個(gè)站點(diǎn)共用一個(gè)數(shù)據(jù)庫(kù)的問(wèn)題:實(shí)用方法分享!(如何1個(gè)數(shù)據(jù)庫(kù)多站用)


咨詢
建站咨詢
