自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MyEclipse Spring Hibernate整合開發(fā)

開發(fā) 后端
MyEclipse Spring Hibernate整合是什么特點(diǎn)呢?本篇文章我們就向你介紹MyEclipse Spring Hibernate整合方面的情況。

MyEclipse Hibernate Spring整合開發(fā)是如何進(jìn)行呢?讓我們開始講解吧:

MyEclipse Spring Hibernate整合一、開發(fā)環(huán)境

MyEclipse6.01GA,MySQL。

MyEclipse Spring Hibernate整合二、表結(jié)構(gòu)

  1.    CREATE TABLE `user` (  
  2.   `id` int(10) unsigned NOT NULL auto_increment,  
  3.   `username` varchar(64) NOT NULL,  
  4.   `passwordvarchar(64) NOT NULL,  
  5.   `first_name` varchar(128) NOT NULL,  
  6.   `last_name` varchar(128) NOT NULL,  
  7.   `date_created` bigint(20) unsigned NOT NULL,  
  8.   PRIMARY KEY  (`id`)  
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

MyEclipse Spring Hibernate整合三、具體步驟:

1、在MyEclipse中建立一個(gè)“java project”,工程名為:HibernateSpringProject,這個(gè)程序用java應(yīng)用程序就可以實(shí)現(xiàn)。

2、右鍵點(diǎn)擊工程文件,然后選擇MyEclipse-﹥Add Spring Capabilities...

第一步選擇需要加載的包,如下圖所示:

MyEclipse Spring Hibernate整合1 

MyEclipse Spring Hibernate整合圖1

其余的選項(xiàng)默認(rèn),點(diǎn)擊 “下一步”,提示是否建立Spring配置文件,選擇默認(rèn),然后直接點(diǎn)擊“finish”。

3、右鍵點(diǎn)擊工程文件,然后選擇MyEclipse-﹥Add Hibernate Capabilities...

第一步選擇默認(rèn),點(diǎn)擊“下一步”。

第二步提示你是用Hibernate的配置文件還是用Spring的配置文件進(jìn)行SessionFactory的配置,選擇使用Spring來對Hibernate進(jìn)行管理,這樣最后生成的工程里就不包含hibernate.cfg.xml了,好處是在一個(gè)地方就可以對Hibernate進(jìn)行管理了。

第三步提示你是創(chuàng)建一個(gè)新的hibernate配置文件還是使用已有的配置文件,由于我們剛才已經(jīng)生成了Spring配置文件,并且要在其中進(jìn)行hibernate的配置,所以選擇復(fù)選框“Existing Spring configuration file”,選擇該項(xiàng)后,下方的“Spring Config:”后的下拉列表框自動(dòng)填入了剛才生成的Spring配置文件路徑。這時(shí)候有個(gè)錯(cuò)誤,要求你填寫SessionFactory ID,這個(gè)id就是我們要為hibernate注入的一個(gè)類的ID,隨便取一個(gè)名字,例如“sessionFactory”。點(diǎn)擊“下一步”。

第四步要求選擇數(shù)據(jù)庫連接信息,這個(gè)步驟可以參照網(wǎng)上的信息進(jìn)行配置,很簡單。這里需要注意一點(diǎn),“bean id”處填寫一個(gè)數(shù)據(jù)源的名稱,例如“datasource”,下面的單選按鈕選擇“Use Jdbc Driver”就行了,此處沒有用jndi。在“DB Driver”處選擇配置好的數(shù)據(jù)庫連接信息,其他信息自動(dòng)填入余下的輸入框中,點(diǎn)擊下一步。

第四步提示是否創(chuàng)建“SessionFactory”類,由于本程序用Spring替我們注入sessionfactory,此處可以不用創(chuàng)建,勾掉復(fù)選框。然后直接點(diǎn)擊“finish”。

4、建立三個(gè)包,分別是com.simon.dao,com.simon.model,com.simon.service。這寫包的定義可以參考我的另一篇文章ssh開發(fā)時(shí)目錄的建議結(jié)構(gòu)。

5、打開MyEclipse的database exployer perspective,右鍵選擇user表,選擇Hibernate reverse engineering

按照下圖所示進(jìn)行設(shè)置

MyEclipse Spring Hibernate整合2 

MyEclipse Spring Hibernate整合圖2

點(diǎn)擊下一步,在“ID generator”中選擇native,如果愿意可以直接點(diǎn)擊finish

這時(shí)再觀察applicationContext.xml文件,發(fā)現(xiàn)在sessionFactory定義中增加了如下代碼:

  1. ﹤property name="mappingResources"﹥  
  2.  ﹤list﹥  
  3.   ﹤value﹥com/simon/model/User.hbm.xml﹤/value﹥  
  4.   ﹤/list﹥  
  5. ﹤/property﹥ 

此時(shí)在觀察類結(jié)構(gòu):

MyEclipse Spring Hibernate整合3 

MyEclipse Spring Hibernate整合圖3

在model包下生成了三個(gè)類和一個(gè)映射文件。AbstractUser是User的抽象類,在此需要說明一點(diǎn)的是,在標(biāo)準(zhǔn)的Spring應(yīng)用中UserDAO應(yīng)該是一個(gè)接口,而不是一個(gè)具體的類,而MyEclipse將數(shù)據(jù)庫操作方法直接寫到了UserDAO中,另外,按照標(biāo)準(zhǔn)寫法,DAO實(shí)現(xiàn)類要實(shí)現(xiàn)DAO接口,并且要包括SessionFactory的變量聲明,但是生成的代碼中UserDAO直接實(shí)現(xiàn)了HibernateDaoSupport類,需要特別注意。所以,如果你需要標(biāo)準(zhǔn)寫法,可以將UserDAO中的方法提取出來,只保留方法聲明,然后再間一個(gè)impl目錄,將該DAO的實(shí)現(xiàn)類放在該impl中,按照管理將該類命名為UserDAOImpl,另外一點(diǎn)最好將DAO和它的實(shí)現(xiàn)類移到dao包中,結(jié)構(gòu)和model包中的相同。

在這個(gè)例子中暫且將生成的文件都放到model中。

此時(shí)我們可以寫一個(gè)測試程序?qū)⒁粭l記錄插入到user表中,當(dāng)然這個(gè)測試程序并沒有用事務(wù)控制,后面我們還會(huì)介紹,測試程序如下:

  1. import org.springframework.context.ApplicationContext;  
  2. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  3. import com.simon.model.UserDAO;  
  4. import com.simon.model.User;  
  5. public class TestWithoutTx {  
  6.  
  7.  /**  
  8.   * @param args  
  9.   */ 
  10.  public static void main(String[] args) {  
  11.   // TODO Auto-generated method stub  
  12.         User user=new User();  
  13.         user.setFirstName("first name");  
  14.         user.setLastName("last name");  
  15.         user.setUsername("user name");  
  16.         user.setPassword("password");  
  17.         user.setDateCreated(new Long(111111));  
  18.         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");  
  19.         UserDAO userdao=(UserDAO)context.getBean("UserDAO");  
  20.         userdao.save(user);   
  21.  }  

現(xiàn)在的問題是增加事務(wù)處理功能,跟我繼續(xù),這時(shí)候源程序不需要修改,只需要修改applicationContext.xml配置文件,首先增加事務(wù)管理器,因?yàn)槭聞?wù)管理器也需要使用數(shù)據(jù)庫,所以需要引入sessionFactory

如下:

  1. ﹤bean id="myTransactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager"﹥  
  2. ﹤property name="sessionFactory"﹥  
  3. ﹤ref bean="sessionFactory" /﹥  
  4. ﹤/property﹥  
  5. ﹤/bean﹥  

繼續(xù)增加如下配置信息:

  1. ﹤bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"﹥  
  2.   ﹤property name="proxyTargetClass"﹥  
  3.    ﹤value﹥true﹤/value﹥  
  4.   ﹤/property﹥  
  5.   ﹤property name="transactionManager"﹥  
  6.    ﹤ref bean="myTransactionManager" /﹥  
  7.   ﹤/property﹥  
  8.   ﹤property name="target"﹥  
  9.    ﹤ref local="UserDAO" /﹥  
  10.   ﹤/property﹥  
  11.   ﹤property name="transactionAttributes"﹥  
  12.    ﹤props﹥  
  13.     ﹤!-- 這里的方法簽名可以精確到方法, 先懶惰一下全配置上 --﹥  
  14.     ﹤prop key="*"﹥PROPAGATION_REQUIRED﹤/prop﹥  
  15.    ﹤/props﹥  
  16.   ﹤/property﹥  
  17.  ﹤/bean﹥ 

注意以上紅色部分:  注意這個(gè)屬性,必須為 true, 使用CGLIB時(shí)才不用強(qiáng)制編寫DAO接口,也就是由于MyEclipse并沒有為我們生成DAO接口,而是生成了一個(gè)數(shù)據(jù)庫實(shí)現(xiàn)類,為了使Spring不強(qiáng)迫我們必須定義一個(gè)DAO接口,只需要將這個(gè)proxyTargetClass屬性定義為true,這點(diǎn)非常重要,程序出錯(cuò)很有可能和這個(gè)屬性設(shè)置錯(cuò)誤有關(guān)。

下面再寫一個(gè)測試程序,和上面的測試程序基本相同,唯一不同是將上面的

UserDAO userdao=(UserDAO)context.getBean("userDAO");

換成

UserDAO userdao=(UserDAO)context.getBean("userDAOProxy");

執(zhí)行,一切ok,數(shù)據(jù)正確的插入到數(shù)據(jù)庫中。

MyEclipse Spring Hibernate整合開發(fā)就向你介紹到這里,那么你是不是對MyEclipse Spring Hibernate整合有了一些了解了呢?

【編輯推薦】

  1. MyEclipse UML架構(gòu)設(shè)計(jì)淺談
  2. MyEclipse開發(fā)Spring入門操作
  3. Eclipse和MyEclipse的比較淺析
  4. MyEclipse+WebLogic+MySQL數(shù)據(jù)源的配置圖解
  5. MyEclipse JSP+JavaBean如何單步調(diào)試
責(zé)任編輯:仲衡 來源: 百度空間
相關(guān)推薦

2016-12-14 09:03:34

springhibernate異常

2009-06-30 14:02:00

hibernate入門MyEclipse開發(fā)

2009-07-10 15:24:33

MyEclipse開發(fā)Spring

2009-09-23 17:56:45

JSF入門

2009-07-09 18:24:00

WebWork與Spr

2009-03-06 14:34:31

StrutsHibernateSpring

2011-05-19 09:52:48

SSH

2009-06-26 16:07:43

MyEclipse開發(fā)Hibernate程序

2009-07-14 16:25:04

MyEclipse開發(fā)

2009-06-02 14:09:37

myeclipse smyeclipse開發(fā)myeclipse

2010-05-28 19:15:53

2010-08-06 10:56:11

Flex4MyEclipse

2009-09-23 13:23:12

Hibernate M

2009-06-01 15:55:06

JPAEclipseMyEclipse 6

2009-08-14 09:40:55

MyEclipse整合

2009-09-22 17:55:51

Spring Hibe

2009-09-24 09:52:20

Spring Hibe

2009-09-21 17:10:14

struts Hibe

2009-07-02 09:39:37

Hibernate延遲

2009-09-22 14:46:18

struts-spri
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)