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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

發布時間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天是spring的最后一節課,這節課老師講了spring與hibernate整合完成增刪改查的操作,這是很重要的一節課,這也是第一次真正的實現spring結合Hibernate和數據庫連接上,下面是這次課的過程實現:

首先是數據庫建表:采用Oracle數據庫,在Scott用戶里新建USERS表,


所用jar包:


實現源碼如下:

Users.java

[java] view plain copy
  • package?www.csdn.spring.hibernate.domain;??
  • ??
  • import?java.io.Serializable;??
  • import?java.util.Date;??
  • ??
  • public?class?Users?implements?Serializable?{??
  • ??
  • ????/**?
  • ?????*??
  • ?????*/??
  • ????private?static?final?long?serialVersionUID?=?1L;??
  • ??
  • ????private?Integer?id;??
  • ????private?String?name;??
  • ????private?Date?regTime;??
  • ??
  • ????public?Users()?{??
  • ????????super();??
  • ????????//?TODO?Auto-generated?constructor?stub??
  • ????}??
  • ??
  • ????public?Users(Integer?id,?String?name,?Date?regTime)?{??
  • ????????super();??
  • ????????this.id?=?id;??
  • ????????this.name?=?name;??
  • ????????this.regTime?=?regTime;??
  • ????}??
  • ??
  • ????public?Integer?getId()?{??
  • ????????return?id;??
  • ????}??
  • ??
  • ????public?void?setId(Integer?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ??
  • ????public?Date?getRegTime()?{??
  • ????????return?regTime;??
  • ????}??
  • ??
  • ????public?void?setRegTime(Date?regTime)?{??
  • ????????this.regTime?=?regTime;??
  • ????}??
  • ??
  • ????@Override??
  • ????public?String?toString()?{??
  • ????????return?"Users?[id="?+?id?+?",?name="?+?name?+?",?regTime="?+?regTime??
  • ????????????????+?"]";??
  • ????}??
  • ??????
  • }??

  • Users.hbm.xml

    [html] view plain copy
  • <!DOCTYPE?hibernate-mapping?PUBLIC???
  • ????"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"??
  • ????"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">??
  • <hibernate-mapping?package="www.csdn.spring.hibernate.domain">??
  • ????<class?name="Users"?table="USERS"?schema="SCOTT">??
  • ????????<id?name="id"?column="ID">??
  • ????????????<generator?class="sequence">??
  • ????????????????<param?name="sequence">USERS_SEQ</param>??
  • ????????????</generator>??
  • ????????</id>??
  • ??
  • ????????<property?name="name"?type="string"?column="NAME"?/>??
  • ????????<property?name="regTime"?type="timestamp"?column="REGTIME"?/>??
  • ??????
  • ????</class>??
  • ??
  • </hibernate-mapping>??

  • UsersDao.java

    [java] view plain copy
  • package?www.csdn.spring.hibernate.dao;??
  • ??
  • import?java.util.List;??
  • ??
  • import?www.csdn.spring.hibernate.domain.Users;??
  • ??
  • public?interface?UsersDao{??
  • ????public?void?save(Users?entity);??
  • ????public?void?deleteById(Class?clazz,Integer?id);??
  • ????public?List<Users>?getObjects(Class?clazz);??
  • ????public?void?update(Users?entity);??
  • }??

  • UsersDaoImpl.java

    [java] view plain copy
  • package?www.csdn.spring.hibernate.dao;??
  • ??
  • import?java.util.List;??
  • ??
  • import?org.springframework.orm.hibernate3.HibernateTemplate;??
  • ??
  • import?www.csdn.spring.hibernate.domain.Users;??
  • ??
  • public?class?UsersDaoImpl?implements?UsersDao{??
  • ????//?封裝模版類對象??
  • ????private?HibernateTemplate?hibernateTemplate;??
  • ??
  • ????//?注入??
  • ????public?void?setHibernateTemplate(HibernateTemplate?hibernateTemplate)?{??
  • ????????this.hibernateTemplate?=?hibernateTemplate;??
  • ????????}??
  • ??????
  • ????@Override??
  • ????public?void?save(Users?entity)?{??
  • ????????hibernateTemplate.save(entity);??
  • ??????????
  • ????}??
  • ????@Override??
  • ????public?List<Users>?getObjects(Class?clazz)?{??
  • ??????????
  • ????????return?hibernateTemplate.find("from?"+clazz.getName());??
  • ????}??
  • ??
  • ????@Override??
  • ????public?void?deleteById(Class?clazz,Integer?id)?{??
  • ????????//hibernateTemplate.delete(hibernateTemplate.get(clazz.getName(),?id));??
  • ????????hibernateTemplate.bulkUpdate("delete?from?"+clazz.getName()+"?where?id="+id);??
  • ????}??
  • ??
  • ????@Override??
  • ????public?void?update(Users?entity)?{??
  • ????????hibernateTemplate.update(entity);??
  • ??????????
  • ????}??
  • ??
  • }??
  • UserTest.java

    [java] view plain copy
  • package?www.csdn.spring.hibernate.dao;??
  • ??
  • ??
  • ??
  • import?java.util.Date;??
  • import?java.util.List;??
  • ??
  • import?org.junit.Test;??
  • import?org.springframework.context.ApplicationContext;??
  • import?org.springframework.context.support.ClassPathXmlApplicationContext;??
  • ??
  • import?www.csdn.spring.hibernate.domain.Users;??
  • ??
  • public?class?UserTest?{??
  • ????//保存??
  • ????@Test??
  • ????public?void?save(){??
  • ????????ApplicationContext?ac=new?ClassPathXmlApplicationContext("app*.xml");??
  • ????????UsersDao?usersdao=ac.getBean("usersDaoImpl",UsersDao.class);??
  • ????????usersdao.save(new?Users(null,"chrp999999999",new?Date()));??
  • ??????????
  • ????????????System.out.println(usersdao.getClass());??
  • ??????????
  • ????}??
  • ????//獲取所有??
  • ????@Test??
  • ????public?void?getObjects(){??
  • ????????ApplicationContext?ac=new?ClassPathXmlApplicationContext("app*.xml");??
  • ????????UsersDao?usersdao=ac.getBean("usersDaoImpl",UsersDao.class);??
  • ??????????
  • ????????List<Users>?user=usersdao.getObjects(Users.class);??
  • ????????for(Users?u:user){??
  • ????????????System.out.println(u.toString());??
  • ????????}??
  • ????}??
  • ????//根據id刪除??
  • ????????@Test??
  • ????????public?void?delete(){??
  • ????????????ApplicationContext?ac=new?ClassPathXmlApplicationContext("app*.xml");??
  • ????????????UsersDao?usersdao=ac.getBean("usersDaoImpl",UsersDao.class);??
  • ????????????usersdao.deleteById(Users.class,5);??
  • ??????????????
  • ??????????????
  • ????????????????System.out.println(usersdao.getClass());??
  • ??????????????
  • ????????}??
  • ????????//更新??
  • ????????@Test??
  • ????????public?void?update(){??
  • ????????????ApplicationContext?ac=new?ClassPathXmlApplicationContext("app*.xml");??
  • ????????????UsersDao?usersdao=ac.getBean("usersDaoImpl",UsersDao.class);??
  • ????????????usersdao.update(new?Users(2,"deep",new?Date()));??
  • ??????????????
  • ??????????????
  • ????????????System.out.println(usersdao.getClass());??
  • ??????????????
  • ????????}??
  • ??????????
  • }??


  • jdbc.properties

    [plain] view plain copy
  • jdbc.driverClassName=oracle.jdbc.driver.OracleDriver??
  • jdbc.username=scott??
  • jdbc.password=tiger??
  • jdbc.url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl??

  • applicationContext.xml

    [html] view plain copy
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <beans?xmlns="http://www.springframework.org/schema/beans"??
  • ????xmlns:context="http://www.springframework.org/schema/context"??
  • ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  • ????xsi:schemaLocation="http://www.springframework.org/schema/beans??
  • ???????????http://www.springframework.org/schema/beans/spring-beans.xsd??
  • ???????????http://www.springframework.org/schema/context??
  • ???????????http://www.springframework.org/schema/context/spring-context.xsd">??
  • ??
  • ????<!--?導入spring-dao的文件?-->??
  • ????<import?resource="spring.xml"/>??
  • ????<import?resource="spring-dao.xml"?/>??
  • ??????
  • ??????
  • ????<!--?分散配置解析?-->??
  • ????<context:property-placeholder?location="jdbc.properties"?/>??
  • ??
  • </beans>??

  • spring.xml

    [html] view plain copy
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <beans?xmlns="http://www.springframework.org/schema/beans"??
  • ????xmlns:context="http://www.springframework.org/schema/context"??
  • ????xmlns:aop="http://www.springframework.org/schema/aop"??
  • ????xmlns:tx="http://www.springframework.org/schema/tx"??
  • ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  • ????xsi:schemaLocation="http://www.springframework.org/schema/beans??
  • ???????????http://www.springframework.org/schema/beans/spring-beans.xsd??
  • ???????????http://www.springframework.org/schema/context??
  • ???????????http://www.springframework.org/schema/context/spring-context.xsd??
  • ????????????http://www.springframework.org/schema/aop??
  • ???????????http://www.springframework.org/schema/aop/spring-aop.xsd??
  • ???????????http://www.springframework.org/schema/tx??
  • ???????????http://www.springframework.org/schema/tx/spring-tx.xsd">??
  • ????<!--?數據庫連接的數據源?-->??
  • ????<bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource">??
  • ????????<!--?數據庫連接驅動?-->??
  • ????????<property?name="driverClassName"?value="${jdbc.driverClassName}"?/>??
  • ????????<!--?連接的用戶名?-->??
  • ????????<property?name="username"?value="${jdbc.username}"?/>??
  • ????????<!--?連接的用戶密碼?-->??
  • ????????<property?name="password"?value="${jdbc.password}"?/>??
  • ????????<!--?連接的url地址?-->??
  • ????????<property?name="url"?value="${jdbc.url}"?/>??
  • ????????<!--數據庫的連接的最小值??-->??
  • ????????<!--數據庫的連接的最大值??-->??
  • ????</bean>??
  • ????<!--?怎么與hibernate整合的?-->??
  • ????<!--?sessionFactory工廠?-->??
  • ????<bean?id="localSessionFactoryBean"??
  • ????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">??
  • ????????<!--?數據庫連接的數據源?-->??
  • ????????<property?name="dataSource"?ref="dataSource"?/>??
  • ????????<!--?hibernate的映射文件配置?-->??
  • ????????<property?name="mappingResources">??
  • ????????????<array>??
  • ????????????????<value>www/csdn/spring/hibernate/domain/Users.hbm.xml</value>??
  • ????????????</array>??
  • ????????</property>??
  • ????????<!--?hibernate的屬性配置?-->??
  • ????????<property?name="hibernateProperties">??
  • ????????????<props>??
  • ????????????????<prop?key="show_sql">true</prop>??
  • ????????????????<prop?key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory??
  • ????????????????</prop>??
  • ????????????</props>??
  • ????????</property>??
  • ????</bean>??
  • ??
  • ??
  • ???<!--?hibernate封裝的模版類?-->??
  • ???<bean?id="hibernateTemplate"?class="org.springframework.orm.hibernate3.HibernateTemplate">??
  • ?????<property?name="sessionFactory"?ref="localSessionFactoryBean"/>??
  • ???</bean>??
  • ??
  • ??????
  • ??
  • ???<!--?事務管理器?-->??
  • ???<bean??id="hibernateTransactionManager"?class="org.springframework.orm.hibernate3.HibernateTransactionManager">??
  • ???????<property?name="sessionFactory"?ref="localSessionFactoryBean"/>??
  • ???</bean>??
  • ?????
  • ?????
  • ???<!--?事務的通知-->??
  • ???<tx:advice?id="txAdvice"?transaction-manager="hibernateTransactionManager">??
  • ???????<!--?事務的屬性?-->??
  • ???????<tx:attributes>??
  • ???????????<!--?事務的具體執行方法?-->??
  • ???????????<tx:method?name="save*"?propagation="REQUIRED"?isolation="DEFAULT"/>??
  • ???????????<tx:method?name="delete*"?propagation="REQUIRED"?isolation="DEFAULT"/>??
  • ???????????<tx:method?name="update*"?propagation="REQUIRED"?isolation="DEFAULT"/>??
  • ???????????<tx:method?name="get*"?propagation="REQUIRED"?isolation="DEFAULT"?read-only="true"/>??
  • ???????</tx:attributes>??
  • ???</tx:advice>??
  • ?????
  • ??
  • ???<!--?切面?-->??
  • ????<!--?<aop:config>??
  • ????????<aop:pointcut?expression="execution(*..Service*.*(..))"?id="mycut"?/>??
  • ????????<aop:advisor?advice-ref="txAdvice"?pointcut-ref="mycut"?/>??
  • ????</aop:config>??
  • ????-->??
  • ??
  • </beans>??

  • spring-dao.xml

    [html] view plain copy
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <beans?xmlns="http://www.springframework.org/schema/beans"??
  • ???????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  • ???????xsi:schemaLocation="http://www.springframework.org/schema/beans??
  • ???????????http://www.springframework.org/schema/beans/spring-beans.xsd">??
  • ?????
  • ????
  • ????<bean?id="usersDaoImpl"?class="www.csdn.spring.hibernate.dao.UsersDaoImpl">??
  • ?????????<property?name="hibernateTemplate"?ref="hibernateTemplate">??
  • ????</property>??
  • ????</bean>??
  • ???
  • </beans>??
  • 到此為止簡單的spring+Hibernate完成增刪改查就實現了,運行測試類UserTest.java后結果如下

    總結

    以上是生活随笔為你收集整理的spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。