javascript
eclipse 达梦 连接_达梦Hibernate Spring集成开发示例
【IT168 技術文檔】DM是武漢華工達夢數據庫有限公司推出的新一代高性能、高安全性的數據庫產品。它具有開放的、可擴展的體系結構,高性能事務處理能力,以及低廉的維護成本。DM是完全自主開發的數據庫軟件,其安全級別達到了國內所有數據庫產品中的最高級---B1級。在這里我準備用時下比較流行的開發工具,Hibernate和Spring,達夢數據庫。以及MyEclipse來完成一個簡單的應用。
數據庫采用達夢5.0
1、用達夢創建一個test數據庫,再創建一個user表,再創建兩個字段username和password。腳本如下
createdatabasetest datafile'test.dbf'size100;setcurrentdatabasetestcreatelogin test identifiedbytest123defaultdatabasetest;createusertest relatedbytest;grantresourcetotest at test;
以上腳本為創建test數據庫 ,并且創建一個登陸名為 test 密碼是test123
droptablext_user;createtablext_user(user_idvarchar(30)notnull,user_namevarchar(20)notnull,
user_pwdvarchar(30)notnull,primarykey(user_id)
);
2、打開myeclipse的database explore透視圖,右鍵單擊左側的空白區域 ,點擊 new 按鈕單擊“configure database driver”來配置數據庫的驅動。完成以后,做如下操作:
然后測試數據庫是否連接成功。
如果測試成功顯示如下圖:
1.新建一個web項目testSpring
2.引入Spring包
注意:這里為了省得以后再添加spring的相關包,所以一次性的選中了所有的包。選中
Copy選項,它會把這些包拷貝到/WebRoot/WEB-INF/lib目錄下,方便以后實際項目中的使用。其余選下一步,完成
3.添加hibernate包
這時候,系統會檢測到已經添加了spring包。選擇使用Spring的配置文件
點next
點next
這里Dialect先空著。點下一步
點完成
4.由于達夢數據庫不支持Hibrnate Reverse Engineering,在這里推薦使用Hibernate Synchronizer插件。下載以后直接接壓到eclipse的plug文件夾下面就可以使用了。在工程上面右鍵點新建 -> 其它 ->
選擇Hibernate Configuration File點下一步
這里的Database Type先暫時不要選擇(沒有達夢數據庫選項),點完成。
將org.hibernate.dialect.DB2Dialect更改為
org.hibernate.dialect.DMDialect這個類的代碼在達夢的幫助文檔中可以找到。
5.新建一個包com.dm.vo用來存放我們的實體類。
在新建 -> 其它
選擇Hibernate Mapping File點下一步
點Refresh按鈕以后會看到數據庫中我們創建的xt_user表,然后選擇放到剛才我們建好的包里面,這樣會看到生成了一個 xtUser.hbm.xml的hibernate的映射文件。選中該文件點鼠標右鍵會看到HibernateSynchronizer選項。選擇Synchronizer File
會看到給我們生成了三個包,連DAO都幫我們生成了。還比較方便。
但是當和Spring整合時,會有一個小問題,就是Hibernate Synchronizer產生的DAO,有自己控制Session的方法,如果直接使用Spring的HibernateTemplate,那么 Hibernate Synchronizer產生的那些DAO就變成沒用處,反過來直接使用Hibernate Synchronizer產生的DAO,那么會變成自己要想辦法管理session,就失去和Spring整合的方便,而如果混著用,那么session又變成不好控制。要解決這個問題就要修改Hibernate Synchronizer產生的_BaseRootDAO,讓他直接extends HibernateDaoSupport
publicabstractclass_BaseRootDAOextendsHibernateDaoSupport {...protectedObject load(Class refClass, Serializable key) {
log.debug("load"+refClass+"instance with id:"+key);try{//使用getHibernateTemplate()去操作DB。returngetHibernateTemplate().load(refClass, key);
}catch(RuntimeException re) {
log.error("load failed", re);throwre;
}
}publicjava.util.List findBySQL(finalString queryString,finalString alias,finalClass refClass) {
log.debug("findBySQL queryString"+queryString);return(List) getHibernateTemplate().execute(newHibernateCallback() {publicObject doInHibernate(Session session)throwsHibernateException {
SQLQuery sqlQ=session.createSQLQuery(queryString);if(alias==null) {
sqlQ.addEntity(refClass==null?getReferenceClass(): refClass);
}else{
sqlQ.addEntity(alias, refClass==null?getReferenceClass() : refClass);
}returnsqlQ.list();
}
},true);
}
按照以上這個原則修改代碼。就可以和spring整和在一起,在Spring架構里面使用Hibernate就變的非常簡單,下面先建立業務邏輯代碼
MyTestDAO"class="com.dm.dao.MyTestDAO">sessionFactory">mySessionFactory"/>
程序代碼如下:
MyTestDAO mDao=(MyTestDAO)apcontext.getBean("MyTestDAO");//查詢 用native SQLList list=mDao.findBySQL("select XtUser.* from XT_USER XtUser","tss");//查詢 用HQLList list=mDao.find("from XtUser");//新增mDao.save(newXtUser ());//修改mDao.saveOrUpdate(newXtUser ());//刪除mDao.delete(XtUser);
修改后spring ,hibernate就能夠整和在一起,以上的方法只是一個比較簡單的示例,應該有個service層用來提供服務。而DAO是具體的業務實現類。這樣每層之間是松散偶合。為了簡便起見就沒有去編寫service這一層。使用HibernateSynchronizer可以提高我們的開發效率。MyEclipse的Hibernate插件不支持達夢數據庫自動生成映射文件。如果每個表都需要我們去逐個來編寫映像文件是比較煩瑣的工作。利用HibernateSynchronize能夠較好的解決這個問題。提高開發的效率。
總結
以上是生活随笔為你收集整理的eclipse 达梦 连接_达梦Hibernate Spring集成开发示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生鲜配送小程序源码_生鲜配送小程序开发
- 下一篇: redis 用中文做key_推荐一款Re