国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
MyEclipse Spring Hibernate整合開發(fā) - liuxinglanyue - JavaEye技術網站

MyEclipse Spring Hibernate整合開發(fā)

文章分類:Java編程

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

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

    MyEclipse6.01GA,MySQL。

    MyEclipse Spring Hibernate整合二、表結構


  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中建立一個“java project”,工程名為:HibernateSpringProject,這個程序用java應用程序就可以實現。

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

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

 

MyEclipse Spring Hibernate整合圖1

其余的選項默認,點擊 “下一步”,提示是否建立Spring配置文件,選擇默認,然后直接點擊“finish”。

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

第一步選擇默認,點擊“下一步”。

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

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

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

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

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

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

按照下圖所示進行設置

 

MyEclipse Spring Hibernate整合圖2

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

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

    

  1. ﹤property name="mappingResources"﹥  

  2.  ﹤list﹥  

  3.   ﹤value﹥com/simon/model/User.hbm.xml﹤/value﹥  

  4.   ﹤/list﹥  

  5. ﹤/property﹥ 

此時在觀察類結構:

 

MyEclipse Spring Hibernate整合圖3

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

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

此時我們可以寫一個測試程序將一條記錄插入到user表中,當然這個測試程序并沒有用事務控制,后面我們還會介紹,測試程序如下:

        

  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.  }  


現在的問題是增加事務處理功能,跟我繼續(xù),這時候源程序不需要修改,只需要修改applicationContext.xml配置文件,首先增加事務管理器,因為事務管理器也需要使用數據庫,所以需要引入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﹥ 

注意以上紅色部分:  注意這個屬性,必須為 true, 使用CGLIB時才不用強制編寫DAO接口,也就是由于MyEclipse并沒有為我們生成DAO接口,而是生成了一個數據庫實現類,為了使Spring 不強迫我們必須定義一個DAO接口,只需要將這個proxyTargetClass屬性定義為true,這點非常重要,程序出錯很有可能和這個屬性設置錯 誤有關。

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

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

換成

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

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

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

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Struts Spring Hibernate整合筆記_TerrySpace
MyEclipse開發(fā)SSH(Struts+Spring+Hibernate)入門
eclipse下struts+spring+hibernate快速入門
詳解Spring的配置文件
struts+spring +ibatis
Spring3整合Hibernate3
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服