日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

eclipse 达梦 连接_达梦Hibernate Spring集成开发示例

發(fā)布時(shí)間:2025/4/16 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse 达梦 连接_达梦Hibernate Spring集成开发示例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【IT168 技術(shù)文檔】DM是武漢華工達(dá)夢(mèng)數(shù)據(jù)庫(kù)有限公司推出的新一代高性能、高安全性的數(shù)據(jù)庫(kù)產(chǎn)品。它具有開(kāi)放的、可擴(kuò)展的體系結(jié)構(gòu),高性能事務(wù)處理能力,以及低廉的維護(hù)成本。DM是完全自主開(kāi)發(fā)的數(shù)據(jù)庫(kù)軟件,其安全級(jí)別達(dá)到了國(guó)內(nèi)所有數(shù)據(jù)庫(kù)產(chǎn)品中的最高級(jí)---B1級(jí)。在這里我準(zhǔn)備用時(shí)下比較流行的開(kāi)發(fā)工具,Hibernate和Spring,達(dá)夢(mèng)數(shù)據(jù)庫(kù)。以及MyEclipse來(lái)完成一個(gè)簡(jiǎn)單的應(yīng)用。

數(shù)據(jù)庫(kù)采用達(dá)夢(mèng)5.0

1、用達(dá)夢(mèng)創(chuàng)建一個(gè)test數(shù)據(jù)庫(kù),再創(chuàng)建一個(gè)user表,再創(chuàng)建兩個(gè)字段username和password。腳本如下

createdatabasetest datafile'test.dbf'size100;setcurrentdatabasetestcreatelogin test identifiedbytest123defaultdatabasetest;createusertest relatedbytest;grantresourcetotest at test;

以上腳本為創(chuàng)建test數(shù)據(jù)庫(kù) ,并且創(chuàng)建一個(gè)登陸名為 test 密碼是test123

droptablext_user;createtablext_user(user_idvarchar(30)notnull,user_namevarchar(20)notnull,

user_pwdvarchar(30)notnull,primarykey(user_id)

);

2、打開(kāi)myeclipse的database explore透視圖,右鍵單擊左側(cè)的空白區(qū)域 ,點(diǎn)擊 new 按鈕單擊“configure database driver”來(lái)配置數(shù)據(jù)庫(kù)的驅(qū)動(dòng)。完成以后,做如下操作:

然后測(cè)試數(shù)據(jù)庫(kù)是否連接成功。

如果測(cè)試成功顯示如下圖:

1.新建一個(gè)web項(xiàng)目testSpring

2.引入Spring包

注意:這里為了省得以后再添加spring的相關(guān)包,所以一次性的選中了所有的包。選中

Copy選項(xiàng),它會(huì)把這些包拷貝到/WebRoot/WEB-INF/lib目錄下,方便以后實(shí)際項(xiàng)目中的使用。其余選下一步,完成

3.添加hibernate包

這時(shí)候,系統(tǒng)會(huì)檢測(cè)到已經(jīng)添加了spring包。選擇使用Spring的配置文件

點(diǎn)next

點(diǎn)next

這里Dialect先空著。點(diǎn)下一步

點(diǎn)完成

4.由于達(dá)夢(mèng)數(shù)據(jù)庫(kù)不支持Hibrnate Reverse Engineering,在這里推薦使用Hibernate Synchronizer插件。下載以后直接接壓到eclipse的plug文件夾下面就可以使用了。在工程上面右鍵點(diǎn)新建 -> 其它 ->

選擇Hibernate Configuration File點(diǎn)下一步

這里的Database Type先暫時(shí)不要選擇(沒(méi)有達(dá)夢(mèng)數(shù)據(jù)庫(kù)選項(xiàng)),點(diǎn)完成。

將org.hibernate.dialect.DB2Dialect更改為

org.hibernate.dialect.DMDialect這個(gè)類的代碼在達(dá)夢(mèng)的幫助文檔中可以找到。

5.新建一個(gè)包c(diǎn)om.dm.vo用來(lái)存放我們的實(shí)體類。

在新建 -> 其它

選擇Hibernate Mapping File點(diǎn)下一步

點(diǎn)Refresh按鈕以后會(huì)看到數(shù)據(jù)庫(kù)中我們創(chuàng)建的xt_user表,然后選擇放到剛才我們建好的包里面,這樣會(huì)看到生成了一個(gè) xtUser.hbm.xml的hibernate的映射文件。選中該文件點(diǎn)鼠標(biāo)右鍵會(huì)看到HibernateSynchronizer選項(xiàng)。選擇Synchronizer File

會(huì)看到給我們生成了三個(gè)包,連DAO都幫我們生成了。還比較方便。

但是當(dāng)和Spring整合時(shí),會(huì)有一個(gè)小問(wèn)題,就是Hibernate Synchronizer產(chǎn)生的DAO,有自己控制Session的方法,如果直接使用Spring的HibernateTemplate,那么 Hibernate Synchronizer產(chǎn)生的那些DAO就變成沒(méi)用處,反過(guò)來(lái)直接使用Hibernate Synchronizer產(chǎn)生的DAO,那么會(huì)變成自己要想辦法管理session,就失去和Spring整合的方便,而如果混著用,那么session又變成不好控制。要解決這個(gè)問(wèn)題就要修改Hibernate Synchronizer產(chǎn)生的_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);

}

按照以上這個(gè)原則修改代碼。就可以和spring整和在一起,在Spring架構(gòu)里面使用Hibernate就變的非常簡(jiǎn)單,下面先建立業(yè)務(wù)邏輯代碼

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就能夠整和在一起,以上的方法只是一個(gè)比較簡(jiǎn)單的示例,應(yīng)該有個(gè)service層用來(lái)提供服務(wù)。而DAO是具體的業(yè)務(wù)實(shí)現(xiàn)類。這樣每層之間是松散偶合。為了簡(jiǎn)便起見(jiàn)就沒(méi)有去編寫(xiě)service這一層。使用HibernateSynchronizer可以提高我們的開(kāi)發(fā)效率。MyEclipse的Hibernate插件不支持達(dá)夢(mèng)數(shù)據(jù)庫(kù)自動(dòng)生成映射文件。如果每個(gè)表都需要我們?nèi)ブ饌€(gè)來(lái)編寫(xiě)映像文件是比較煩瑣的工作。利用HibernateSynchronize能夠較好的解決這個(gè)問(wèn)題。提高開(kāi)發(fā)的效率。

總結(jié)

以上是生活随笔為你收集整理的eclipse 达梦 连接_达梦Hibernate Spring集成开发示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。