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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good

發(fā)布時(shí)間:2025/6/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Spring+Hibernate兩種方法實(shí)現(xiàn)增刪改查

? ? 首先,定義一個(gè)Customer的bean類,設(shè)置好Customer.hbm.xml文件。再定義好一個(gè)Dao接口。準(zhǔn)備好一個(gè)jdbc.properties文件。 ?

?

第一種方法:

在dao類中定義一個(gè)HibernateTemplate類的對(duì)象,用該對(duì)象調(diào)用HibernateTemplate模板封裝好的方法,如下:

? Java代碼 ?
  • /***?
  • ?*?hibernateTemplate的轉(zhuǎn)配模式?
  • ?*/??
  • public?class?CustomerDaoImpl?implements?CustomerDao?{??
  • ????//?設(shè)置hibernateTemplate屬性??
  • ????private?HibernateTemplate?hibernateTemplate;??
  • ??
  • ????//?必須設(shè)置set方法??
  • ????public?void?setHibernateTemplate(HibernateTemplate?hibernateTemplate)?{??
  • ????????this.hibernateTemplate?=?hibernateTemplate;??
  • ????}??
  • ??
  • ????//?插入方法??
  • ????@Override??
  • ????public?void?insert(Customer?entity)?{??
  • ????????hibernateTemplate.save(entity);??
  • ????}??
  • ??
  • ????//?刪除方法(按照試題刪除)??
  • ????@Override??
  • ????public?void?delete(Customer?entity)?{??
  • ????????hibernateTemplate.delete(entity);??
  • ??
  • ????}??
  • ??
  • ????//?刪除方法,按id刪除,該方法不成功??
  • ????@Override??
  • ????public?void?deleteById(int?id)?{??
  • ????????//?hibernateTemplate.??
  • ????}??
  • ??
  • ????//?查詢所有記錄??
  • ????@Override??
  • ????public?List<Customer>?selectAll()?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????List<Customer>?entities?=?hibernateTemplate.find("from?Customer");??
  • ????????return?entities;??
  • ????}??
  • ??
  • ????//?按照id查找記錄??
  • ????@Override??
  • ????public?Customer?selectById(int?id)?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????List<Customer>?entitise?=?hibernateTemplate??
  • ????????????????.find("from?Customer?where?id="?+?id);??
  • ????????if?(entitise.size()?>?0)?{??
  • ????????????Customer?entity?=?entitise.get(0);??
  • ????????????return?entity;??
  • ????????}??
  • ????????return?null;??
  • ????}??
  • ??
  • ????//?更新方法??
  • ????@Override??
  • ????public?void?update(Customer?entity)?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????hibernateTemplate.update(entity);??
  • ????}??
  • ??
  • }??
  • xml中的部分代碼如下:

    Java代碼 ?
  • <!--?分散配置?-->??
  • ????<context:property-placeholder?location="jdbc.properties"?/>??
  • ??
  • ????<!--?c3p0數(shù)據(jù)源?-->??
  • ????<bean?id="dataSource"?class="com.mchange.v2.c3p0.ComboPooledDataSource">??
  • ????????<!--?驅(qū)動(dòng)程序?-->??
  • ????????<property?name="driverClass">??
  • ????????????<value>${jdbc.driverClass}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?連接的url地址?-->??
  • ????????<property?name="jdbcUrl">??
  • ????????????<value>${jdbc.url}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?連接的用戶名?-->??
  • ????????<property?name="user">??
  • ????????????<value>${jdbc.user}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?連接的密碼?-->??
  • ????????<property?name="password">??
  • ????????????<value>${jdbc.password}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?最大池?cái)?shù)?-->??
  • ????????<property?name="maxPoolSize">??
  • ????????????<value>${c3p0.pool.max}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?最小池?cái)?shù)?-->??
  • ????????<property?name="minPoolSize">??
  • ????????????<value>${c3p0.pool.min}</value>??
  • ????????</property>??
  • ????????<!--?默認(rèn)初始化的池?cái)?shù)?-->??
  • ????????<property?name="initialPoolSize">??
  • ????????????<value>${c3p0.pool.init}</value>??
  • ????????</property>??
  • ????</bean>??
  • ??
  • ??
  • ????<bean?id="sessionFactory"??
  • ????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">??
  • ????????<!--?設(shè)置數(shù)據(jù)源?-->??
  • ????????<property?name="dataSource"?ref="dataSource"?/>??
  • ????????<!--?屬性設(shè)置?-->??
  • ????????<property?name="hibernateProperties">??
  • ????????????<props>??
  • ????????????????<prop?key="hibernate.show_sql">${hibernate.show_sql}</prop>??
  • ????????????????<prop?key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>??
  • ????????????</props>??
  • ????????</property>??
  • ????????<!--?映射文件配置?-->??
  • ????????<property?name="mappingResources">??
  • ????????????<list>??
  • ????????????????<value>cn/csdn/domain/Customer.hbm.xml</value>??
  • ????????????</list>??
  • ????????</property>??
  • ??
  • ????</bean>??
  • ??
  • ??
  • ????<span?style="background-color:?#ff0000;"><!--?hibernate模板?-->??
  • ????<bean?id="hibernateTemplate"?class="org.springframework.orm.hibernate3.HibernateTemplate">??
  • ????????<property?name="sessionFactory"?ref="sessionFactory"?/>??
  • ????</bean></span>??
  • ??
  • ????<!--?dao的操作的bean?-->??
  • ????<bean?id="customerDaoImpl"?class="cn.csdn.dao.CustomerDaoImpl">??
  • ????????<!--?注入依賴模板?-->??
  • ????????<property?name="hibernateTemplate"?ref="hibernateTemplate"?/>??
  • ????????</bean>??
  • ?

    第二種方法:

    Dao實(shí)現(xiàn)類繼承HibernateDaoSupport類,該類是抽象類,該類中有一個(gè)HibernateTemplate的屬性,通過this.getHibernateTemplate()可獲得一個(gè)HibernateTemplate類的對(duì)象。

    Dao實(shí)現(xiàn)類中的代碼如下:

    Java代碼 ?
  • /**?
  • ?*?繼承HibernateDaoSupport類,HibernateDaoSupport類中封裝了一個(gè)hibernateTemplate變量?
  • ?*/??
  • public?class?CustomerDaoImpl1?extends?HibernateDaoSupport?implements??
  • ????????CustomerDao?{??
  • ??
  • ????//?添加記錄??
  • ????@Override??
  • ????public?void?insert(Customer?entity)?{??
  • ????????this.getHibernateTemplate().save(entity);??
  • ????}??
  • ??
  • ????//?刪除記錄(按照實(shí)體刪除)??
  • ????@Override??
  • ????public?void?delete(Customer?entity)?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????this.getHibernateTemplate().delete(entity);??
  • ??
  • ????}??
  • ??
  • ????//?刪除記錄(按id刪除),不成功??
  • ????//??
  • ????@Override??
  • ????public?void?deleteById(int?id)?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????//?this.getHibernateTemplate().delete(entity);??
  • ????}??
  • ??
  • ????//?查詢所有的記錄??
  • ????@Override??
  • ????public?List<Customer>?selectAll()?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????List<Customer>?entities?=?this.getHibernateTemplate().find(??
  • ????????????????"from?Customer");??
  • ????????return?entities;??
  • ????}??
  • ??
  • //??按照id查找記錄??
  • ????@Override??
  • ????public?Customer?selectById(int?id)?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????List<Customer>?entities=this.getHibernateTemplate().find("from?Customer?where?id="+id);??
  • ????????if(entities.size()>0){??
  • ????????????Customer?entity=entities.get(0);??
  • ????????????return?entity;??
  • ????????}??
  • ????????return?null;??
  • ????}??
  • ??
  • //??更新的方法??
  • ????@Override??
  • ????public?void?update(Customer?entity)?{??
  • ????????//?TODO?Auto-generated?method?stub??
  • ????????this.getHibernateTemplate().update(entity);??
  • ????}??
  • ??
  • ????}??
  • ?

    ?xml中的部分代碼:

    Java代碼 ?
  • <!--?分散配置?-->??
  • ????<context:property-placeholder?location="jdbc.properties"?/>??
  • ??
  • ????<!--?c3p0數(shù)據(jù)源?-->??
  • ????<bean?id="dataSource"?class="com.mchange.v2.c3p0.ComboPooledDataSource">??
  • ????????<!--?驅(qū)動(dòng)程序?-->??
  • ????????<property?name="driverClass">??
  • ????????????<value>${jdbc.driverClass}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?連接的url地址?-->??
  • ????????<property?name="jdbcUrl">??
  • ????????????<value>${jdbc.url}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?連接的用戶名?-->??
  • ????????<property?name="user">??
  • ????????????<value>${jdbc.user}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?連接的密碼?-->??
  • ????????<property?name="password">??
  • ????????????<value>${jdbc.password}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?最大池?cái)?shù)?-->??
  • ????????<property?name="maxPoolSize">??
  • ????????????<value>${c3p0.pool.max}</value>??
  • ????????</property>??
  • ??
  • ????????<!--?最小池?cái)?shù)?-->??
  • ????????<property?name="minPoolSize">??
  • ????????????<value>${c3p0.pool.min}</value>??
  • ????????</property>??
  • ????????<!--?默認(rèn)初始化的池?cái)?shù)?-->??
  • ????????<property?name="initialPoolSize">??
  • ????????????<value>${c3p0.pool.init}</value>??
  • ????????</property>??
  • ????</bean>??
  • ??
  • ??
  • ????<bean?id="sessionFactory"??
  • ????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">??
  • ????????<!--?設(shè)置數(shù)據(jù)源?-->??
  • ????????<property?name="dataSource"?ref="dataSource"?/>??
  • ????????<!--?屬性設(shè)置?-->??
  • ????????<property?name="hibernateProperties">??
  • ????????????<props>??
  • ????????????????<prop?key="hibernate.show_sql">${hibernate.show_sql}</prop>??
  • ????????????????<prop?key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>??
  • ????????????</props>??
  • ????????</property>??
  • ????????<!--?映射文件配置?-->??
  • ????????<property?name="mappingResources">??
  • ????????????<list>??
  • ????????????????<value>cn/csdn/domain/Customer.hbm.xml</value>??
  • ????????????</list>??
  • ????????</property>??
  • ??
  • ????</bean>??
  • ??
  • ??
  • ????<!--?設(shè)置HibernateDaoSupport抽象類-->??
  • ????<bean?id="hibernateDaoSupport"??
  • ????????class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"??
  • ????????abstract="true">??
  • ????????<property?name="sessionFactory"?ref="sessionFactory"?/>??
  • ????</bean>?

  • ????<!--?dao的操作的bean?-->??
  • ????<bean?id="customerDaoImpl"?class="cn.csdn.dao.CustomerDaoImpl1"??
  • ????????????parent="hibernateDaoSupport"?/>?
  • ???? <bean id="adminDAO" class="com.haier.uhome.hr91.manager.dao.AdminDAO">
    ?? ??? ????? parent="hibernateDaoSupport"/>

  • 或者如下:

    <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1">
    ?? ??? ?<property name="sessionFactory">
    ?? ??? ??? ?<ref local="sessionFactory" />
    ?? ??? ?</property>
    ?? ?</bean>

    <bean id="adminDAO" class="com.haier.uhome.hr91.manager.dao.AdminDAO">
    ?? ??? ?<property name="sessionFactory">
    ?? ??? ??? ?<ref local="sessionFactory" />
    ?? ??? ?</property>
    ?? ?</bean>

    總結(jié)

    以上是生活随笔為你收集整理的HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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