dyerac  
          dyerac In Java
          公告

          日歷
          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789
          統計
          • 隨筆 - 36
          • 文章 - 10
          • 評論 - 94
          • 引用 - 0

          導航

          常用鏈接

          留言簿(5)

          隨筆分類(49)

          隨筆檔案(36)

          文章分類(11)

          文章檔案(10)

          相冊

          dyerac

          搜索

          •  

          積分與排名

          • 積分 - 79528
          • 排名 - 705

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

           

          整合hibernate和spring這樣的文章已經很多了,下面我們來看看如何利用myeclipse的功能為整合提速咯

          1.首先,創建工程,可以直接選創建J2EE web工程
          ?? (這....就不用貼圖了吧)

          2.導入spring, 選擇myeclipse的add spring capabilities,注意把copy .....打勾(注,如果想要在spring的配置文件中配置hibernate的話, 一定要先導入spring)




          3. 導入hibernate, 選擇myeclipse的add hibernatecapabilities,注意把copy .....打勾




          這時,myeclipse檢測到已有spring,會問如何處理hibernate配置信息,? 這里, 我們選擇把hibernate的配置信息寫在spring的配置信息中



          接著,既然選擇把在spring配置文件中配置hibernate信息,就需要設置hibernate的sessionfactory在配置文件中的bean id, 這里, 就設置為sessionFactory




          然后要配置sessionFactory對應的數據源,注,數據源對應的bean id也需要設置,可以簡單設置為dataSource
          就不貼圖咯




          最后,選擇sessionfactory對于的實現類,可以就用spring提供的LocalSessionFactory



          這樣, 我們就在項目中添加了spring和hibernate并將他們給予整合咯

          3.應用:
          ? 配置好了環境,我們當然還得應用咯.下面給出我的代碼
          首先創建pojo和對應的hbm.xml

          package ?mapping;

          public ? class ?Test? {

          ????
          public ?Test()? {
          ????????
          super ();
          ????????
          // ?TODO?Auto-generated?constructor?stub
          ????}


          ????
          private ? int ?id;
          ????
          ????
          private ?String?name;

          ????
          public ? int ?getId()? {
          ????????
          return ?id;
          ????}


          ????
          public ? void ?setId( int ?id)? {
          ????????
          this .id? = ?id;
          ????}


          ????
          public ?String?getName()? {
          ????????
          return ?name;
          ????}


          ????
          public ? void ?setName(String?name)? {
          ????????
          this .name? = ?name;
          ????}

          ????
          ????
          }


          <? xml?version="1.0" ?>
          <! DOCTYPE?hibernate-mapping?PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          >

          < hibernate-mapping? default-lazy ="false" ??auto-import ="true" ?package ="mapping" >
          ???
          < class? table ="test" ?name ="Test" >
          ?????
          < id? name ="id" ?column ="test_id" ?type ="int" >
          ???????
          < generator? class ="native" ></ generator >
          ?????
          </ id >
          ?????
          ?????
          < property? name ="name" ?type ="string" ?column ="name" ></ property >
          ???
          </ class >
          </ hibernate-mapping >


          然后開發對應的DAO操作pojo, 因為我比較懶,所以直接使用HibernateTemplate進行操作

          package?mapping;
          ?
          import?java.util.List;

          import?org.hibernate.Criteria;
          import?org.springframework.orm.hibernate3.HibernateTemplate;

          public?class?TestDAO?{

          ????
          private?HibernateTemplate?hibernateTemplate;

          ????
          public?TestDAO()?{
          ????????
          super();
          ????????
          //?TODO?Auto-generated?constructor?stub
          ????}


          ????
          public?Test?getTest(String?name)?throws?Exception?{
          ????????Test?t
          =new?Test();
          ????????t.setName(name);
          ????????List?list?
          =?this.getHibernateTemplate().findByExample(t);
          ????????
          if?(list.isEmpty())
          ????????????
          throw?new?Exception("No?Such?Record");
          ????????
          else
          ????????????
          return?(Test)?list.get(0);
          ????}


          ????
          public?void?addTest(String?name)?{
          ????????Test?test?
          =?new?Test();
          ????????test.setName(name);
          ????????
          this.getHibernateTemplate().save(test);
          ????}


          ????
          public?void?updateTest(Test?test){
          ????????
          this.getHibernateTemplate().update(test);
          ????}

          ????
          ????
          public?void?deleteTest(Test?test){
          ????????
          this.getHibernateTemplate().delete(test);
          ????}

          ????
          ????
          public?HibernateTemplate?getHibernateTemplate()?{
          ????????
          return?hibernateTemplate;
          ????}


          ????
          public?void?setHibernateTemplate(HibernateTemplate?ht)?{
          ????????
          this.hibernateTemplate?=?ht;
          ????}

          }

          ?

          相應的,還需要修改下spring的配置文件

          <?xml?version="1.0"?encoding="UTF-8"?>
          <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">

          <beans>
          ?

          ????
          <bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource">
          ????????
          <property?name="driverClassName">
          ????????????
          <value>com.mysql.jdbc.Driver</value>
          ????????
          </property>
          ????????
          <property?name="url">
          ????????????
          <value>jdbc:mysql://localhost:3306/nirvana?useUnicode=true</value>
          ????????
          </property>
          ????????
          <property?name="username">
          ????????????
          <value>dyerac</value>
          ????????
          </property>
          ????????
          <property?name="password">
          ????????????
          <value></value>
          ????????
          </property>
          ????
          </bean>
          ????????
          ????
          <bean?id="sessoinFactory"?class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          ????????
          <property?name="dataSource">
          ????????????
          <ref?bean="dataSource"?/>
          ????????
          </property>
          ????????
          <property?name="hibernateProperties">
          ????????????
          <props>
          ????????????????
          <prop?key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
          ????????????????
          <prop?key="connection.characterEncoding">utf8</prop>
          ????????????????
          <prop?key="hibernate.show_sql">true</prop>
          ????????????????
          <prop?key="hibernate.hbm2ddl.auto">update</prop>
          ????????????
          </props>
          ????????
          </property>
          ????????
          <property?name="mappingDirectoryLocations">
          ???????????
          <list?>
          ????????????
          <value>src/mapping</value>
          ???????????
          </list>
          ????????
          </property>
          ????
          </bean>
          ????
          ????
          <bean?id="hibernateTemplate"?class="org.springframework.orm.hibernate3.HibernateTemplate">
          ??????
          <property?name="sessionFactory">
          ???????
          <ref?bean="sessoinFactory"/>
          ??????
          </property>
          ??????
          <property?name="allowCreate">
          ????????
          <value>true</value>
          ??????
          </property>
          ????
          </bean>
          ????
          ????
          <bean?id="testDAO"?class="mapping.TestDAO">
          ??????
          <property?name="hibernateTemplate">
          ????????
          <ref?bean="hibernateTemplate"/>
          ??????
          </property>
          ????
          </bean>
          </beans>


          最后的最后,開發一個測試類:

          import?mapping.Test;
          import?mapping.TestDAO;?
          import?org.springframework.context.ApplicationContext;
          import?org.springframework.context.support.FileSystemXmlApplicationContext;

          public?class?Tester?{
          ?
          ????
          public?static?void?main(String?args[])?{
          ????????ApplicationContext?ctx?
          =?new?FileSystemXmlApplicationContext(
          ????????????????
          "src/applicationContext.xml");
          ????????TestDAO?test?
          =?(TestDAO)?ctx.getBean("testDAO");
          ????????
          //test.addTest("dyerac");
          ????????try?{?
          ????????????Test?t?
          =?test.getTest("bsbs");
          ????????????System.err.println(t.getName());
          ????????????
          //t.setName("bsbs");
          ????????????
          //test.updateTest(t);
          ?????????????
          //test.deleteTest(t);
          ????????}
          ?catch?(Exception?e)?{?
          ????????????System.err.println(e);
          ????????}

          ????}

          }

          posted on 2006-08-04 17:42 dyerac in java... 閱讀(6911) 評論(10)  編輯  收藏 所屬分類: spring&hibernate 、原創文章
          評論:
          • # re: 在myeclipse下整合spring和hibernate  高峰 Posted @ 2006-09-26 16:34
            我用sqlserver連的數據庫 出異常  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  dyerac in java... Posted @ 2006-09-29 01:16
            不會吧,什么問題?  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  冰川 Posted @ 2006-10-04 21:13
            樓主自己測試過了嗎?  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  dyerac in java... Posted @ 2006-10-04 21:48
            @冰川
            在mysql下肯定沒有問題,因為這是我做了后才寫的
            其他數據庫也應該沒有問題  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  fishbaby Posted @ 2006-10-17 16:33
            樓主的樣例不錯,讓我知道了 spring+hibernate是怎么個流程,我試著做了這個樣例,沒有發現問題。謝謝樓主!  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  leifeng Posted @ 2006-12-07 19:49
            ..開發對應的DAO操作pojo..

            是否多余?因為habernate mapping 已經幫你做好了吧  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  dyerac in java... Posted @ 2006-12-08 17:09
            恩,只是為演示而已。  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  loner Posted @ 2006-12-27 16:15
            為什么我的   回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  loner Posted @ 2006-12-27 16:17
            為什么我的 db profile 下是空的,無法選擇呢````這是為什么阿``  回復  更多評論   

          • # re: 在myeclipse下整合spring和hibernate  ,貓貓 Posted @ 2007-03-19 21:48
            List list = this.getHibernateTemplate().findByExample(t);
            老報沒有findByEample()這個方法的錯??  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          Copyright © dyerac in java... Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 双峰县| 万源市| 宁阳县| 山阳县| 康定县| 乐亭县| 武夷山市| 三都| 广德县| 定安县| 淮北市| 内乡县| 钦州市| 丹江口市| 阆中市| 永善县| 广宁县| 大邑县| 阳信县| 海南省| 东台市| 调兵山市| 资溪县| 定南县| 鞍山市| 乌拉特前旗| 六盘水市| 洞头县| 富顺县| 姜堰市| 麻栗坡县| 上杭县| 措勤县| 瑞金市| 施秉县| 麦盖提县| 呼和浩特市| 桐梓县| 贡嘎县| 柳河县| 辽阳市|