Spring+Hibernate两种方法实现增删改查

首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件。再定义好一个Dao接口。准备好一个jdbc.properties文件。

第一种方法:

在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下:

Java代码  
  1. /***
  2. * hibernateTemplate的转配模式
  3. */
  4. public class CustomerDaoImpl implements CustomerDao {
  5.     // 设置hibernateTemplate属性  
  6.     private HibernateTemplate hibernateTemplate;  
  7.   
  8.     // 必须设置set方法  
  9.     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {  
  10.         this.hibernateTemplate = hibernateTemplate;  
  11.     }  
  12. // 插入方法
  13. @Override
  14. public void insert(Customer entity) {
  15. hibernateTemplate.save(entity);
  16. }
  17. // 删除方法(按照试题删除)
  18. @Override
  19. public void delete(Customer entity) {
  20. hibernateTemplate.delete(entity);
  21. }
  22. // 删除方法,按id删除,该方法不成功
  23. @Override
  24. public void deleteById(int id) {
  25. // hibernateTemplate.
  26. }
  27. // 查询所有记录
  28. @Override
  29. public List<Customer> selectAll() {
  30. // TODO Auto-generated method stub
  31. List<Customer> entities = hibernateTemplate.find("from Customer");
  32. return entities;
  33. }
  34. // 按照id查找记录
  35. @Override
  36. public Customer selectById(int id) {
  37. // TODO Auto-generated method stub
  38. List<Customer> entitise = hibernateTemplate
  39. .find("from Customer where id=" + id);
  40. if (entitise.size() > 0) {
  41. Customer entity = entitise.get(0);
  42. return entity;
  43. }
  44. return null;
  45. }
  46. // 更新方法
  47. @Override
  48. public void update(Customer entity) {
  49. // TODO Auto-generated method stub
  50. hibernateTemplate.update(entity);
  51. }
  52. }

xml中的部分代码如下:

Java代码  
  1. <!-- 分散配置 -->
  2. <context:property-placeholder location="jdbc.properties" />
  3. <!-- c3p0数据源 -->
  4. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  5. <!-- 驱动程序 -->
  6. <property name="driverClass">
  7. <value>${jdbc.driverClass}</value>
  8. </property>
  9. <!-- 连接的url地址 -->
  10. <property name="jdbcUrl">
  11. <value>${jdbc.url}</value>
  12. </property>
  13. <!-- 连接的用户名 -->
  14. <property name="user">
  15. <value>${jdbc.user}</value>
  16. </property>
  17. <!-- 连接的密码 -->
  18. <property name="password">
  19. <value>${jdbc.password}</value>
  20. </property>
  21. <!-- 最大池数 -->
  22. <property name="maxPoolSize">
  23. <value>${c3p0.pool.max}</value>
  24. </property>
  25. <!-- 最小池数 -->
  26. <property name="minPoolSize">
  27. <value>${c3p0.pool.min}</value>
  28. </property>
  29. <!-- 默认初始化的池数 -->
  30. <property name="initialPoolSize">
  31. <value>${c3p0.pool.init}</value>
  32. </property>
  33. </bean>
  34. <bean id="sessionFactory"
  35. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  36. <!-- 设置数据源 -->
  37. <property name="dataSource" ref="dataSource" />
  38. <!-- 属性设置 -->
  39. <property name="hibernateProperties">
  40. <props>
  41. <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
  42. <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
  43. </props>
  44. </property>
  45. <!-- 映射文件配置 -->
  46. <property name="mappingResources">
  47. <list>
  48. <value>cn/csdn/domain/Customer.hbm.xml</value>
  49. </list>
  50. </property>
  51. </bean>
  52. <span style="background-color: #ff0000;"><!-- hibernate模板 -->
  53. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  54. <property name="sessionFactory" ref="sessionFactory" />
  55. </bean></span>
  56. <!-- dao的操作的bean -->
  57.     <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl">  
  58.         <!-- 注入依赖模板 -->  
  59.         <property name="hibernateTemplate" ref="hibernateTemplate" />  
  60.         </bean>  

第二种方法:

Dao实现类继承HibernateDaoSupport类,该类是抽象类,该类中有一个HibernateTemplate的属性,通过this.getHibernateTemplate()可获得一个HibernateTemplate类的对象。

Dao实现类中的代码如下:

Java代码  
  1. /**
  2. * 继承HibernateDaoSupport类,HibernateDaoSupport类中封装了一个hibernateTemplate变量
  3. */
  4. public class CustomerDaoImpl1 extends HibernateDaoSupport implements
  5. CustomerDao {
  6. // 添加记录
  7. @Override
  8. public void insert(Customer entity) {
  9. this.getHibernateTemplate().save(entity);
  10. }
  11. // 删除记录(按照实体删除)
  12. @Override
  13. public void delete(Customer entity) {
  14. // TODO Auto-generated method stub
  15. this.getHibernateTemplate().delete(entity);
  16. }
  17. // 删除记录(按id删除),不成功
  18. //
  19. @Override
  20. public void deleteById(int id) {
  21. // TODO Auto-generated method stub
  22. // this.getHibernateTemplate().delete(entity);
  23. }
  24. // 查询所有的记录
  25. @Override
  26. public List<Customer> selectAll() {
  27. // TODO Auto-generated method stub
  28. List<Customer> entities = this.getHibernateTemplate().find(
  29. "from Customer");
  30. return entities;
  31. }
  32. //  按照id查找记录
  33. @Override
  34. public Customer selectById(int id) {
  35. // TODO Auto-generated method stub
  36. List<Customer> entities=this.getHibernateTemplate().find("from Customer where id="+id);
  37. if(entities.size()>0){
  38. Customer entity=entities.get(0);
  39. return entity;
  40. }
  41. return null;
  42. }
  43. //  更新的方法
  44. @Override
  45. public void update(Customer entity) {
  46. // TODO Auto-generated method stub
  47. this.getHibernateTemplate().update(entity);
  48. }
  49. }

xml中的部分代码:

Java代码  
  1. <!-- 分散配置 -->
  2. <context:property-placeholder location="jdbc.properties" />
  3. <!-- c3p0数据源 -->
  4. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  5. <!-- 驱动程序 -->
  6. <property name="driverClass">
  7. <value>${jdbc.driverClass}</value>
  8. </property>
  9. <!-- 连接的url地址 -->
  10. <property name="jdbcUrl">
  11. <value>${jdbc.url}</value>
  12. </property>
  13. <!-- 连接的用户名 -->
  14. <property name="user">
  15. <value>${jdbc.user}</value>
  16. </property>
  17. <!-- 连接的密码 -->
  18. <property name="password">
  19. <value>${jdbc.password}</value>
  20. </property>
  21. <!-- 最大池数 -->
  22. <property name="maxPoolSize">
  23. <value>${c3p0.pool.max}</value>
  24. </property>
  25. <!-- 最小池数 -->
  26. <property name="minPoolSize">
  27. <value>${c3p0.pool.min}</value>
  28. </property>
  29. <!-- 默认初始化的池数 -->
  30. <property name="initialPoolSize">
  31. <value>${c3p0.pool.init}</value>
  32. </property>
  33. </bean>
  34. <bean id="sessionFactory"
  35. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  36. <!-- 设置数据源 -->
  37. <property name="dataSource" ref="dataSource" />
  38. <!-- 属性设置 -->
  39. <property name="hibernateProperties">
  40. <props>
  41. <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
  42. <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
  43. </props>
  44. </property>
  45. <!-- 映射文件配置 -->
  46. <property name="mappingResources">
  47. <list>
  48. <value>cn/csdn/domain/Customer.hbm.xml</value>
  49. </list>
  50. </property>
  51. </bean>
  52. <!-- 设置HibernateDaoSupport抽象类-->
  53.     <bean id="hibernateDaoSupport"  
  54.         class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"  
  55.         abstract="true">  
  56.         <property name="sessionFactory" ref="sessionFactory" />  
  57.     </bean> 

  58.     <!-- dao的操作的bean -->  
  59.     <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1"  
  60.             parent="hibernateDaoSupport" /> 
  61.      <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>

HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good相关推荐

  1. mybatis学习笔记(2)两种配置实现增删改查

    第二天学习mybatis,发现框架的存在确实是省了我们很多时间,我们完全可以把一些操作简化,或者实现简单的封装提供我们使用.昨天是跟着教程云里雾里的实现了配置,今天再次使用就方便很多. String ...

  2. Hibernate的四种典型例子(增删改查)

    Hibernate的四种典型例子(增删改查)  //查询  // Session session=HibernateSessionFactory.getSession();  // session.b ...

  3. 【Vue】MyClassroom.vue 使用组件方法实现增删改查-20221226

    MyClassroom.vue 使用组件方法实现增删改查. <template><div class="container"><div class=& ...

  4. es java 增删改查_【java作业】如何用序列化的方法写增删改查

    培训19天的时候老师布置了一个用序列化反序列化做学生管理系统的作业.百度没找到怎么写,后来老师写了一份,我就贴出来吧.对蠢萌蠢萌.纱布拉基的我来说真TM难 首先你的包和里面的类是跟下图这样的:Work ...

  5. JS数组的使用方法之增删改查

    1.数组的三要素 元素:数组存储的数据 下标:元素的位置(下标从0 开始) 长度:元素的数量(长度=最大下标+1) 数组的语法: (1).数组声明: let 数组名 = [元素1,元素2,元素3,-] ...

  6. jdbc增删改查有哪些步骤_JDBC打造通用增删改方法

    [JDBC]打造通用增删改方法原创 简介:在我们学习JDBC的时候或者编写简单的Servlet程序的时候,经常需要增删改查等操作,很多小伙伴的做法是:增删改查各写一个方法,这样写虽然可以实现我们想要的 ...

  7. ORM框架之Mybatis(一)基于mapper配置增删改查

    Mybatis是现在非常流行的SSM框架中的M部分,Mybatis也是一个主流的ORM框架,在项目中用来处理持久层数据. 一.Mybatis框架介绍及使用 1.1 mybatis框架概述: mybat ...

  8. Java-spring数据库编程(idea)实现学生账号登录以及管理员增删改查功能

    通过所学的Spring数据库编程知识,实现学生管理系统的登录及增删改查的功能.要求学生在控制台输入用户名密码,如果用户账号密码正确则显示登录成功,如果登录失败则显示登录失败.登录成功后,可以进行增删改 ...

  9. SSM框架——Mybatis增删改查

    目录 目录 环境配置 增删改查的实现 查询全部 查询单个ID 添加用户 修改用户 删除用户 增删改查-使用注解开发 思路流程:搭建环境-->导入Mybatis--->编写代码---> ...

最新文章

  1. VPC DHCP类型的ECS修改DNS
  2. Winform中自定义xml配置文件后对节点进行读取与写入
  3. python找出在原图中的位置_用python简单处理图片(4):图像中的像素访问
  4. oracle dblink 验证,Oracle DBLINK 简单使用
  5. php等级证书,php银行开放平台接口1:php 对cer证书处理
  6. AAAI 2020 | 微软亚洲研究院6篇精选论文在家看
  7. Windows Internet Explorer 8 for Windows Vista 和 Windows Server 2008
  8. python基础编程语法-Python基础语法介绍:面向对象编程(上)
  9. va_list!!!
  10. KMeans聚类算法思想与可视化
  11. java的实例变量_JAVA语言中的实例变量
  12. python验证软件签名
  13. 企业微信api接口调用-通过手机号或微信好友添加客户
  14. 樊登读书会终身成长读后感_樊登读书会创始人演讲《知识爆炸时代如何终身成长》...
  15. 【转载】第三方支付业务如何测试
  16. 桌面上的文件夹怎么保存到计算机硬盘里,电脑文件怎么保存到桌面
  17. 斩获数亿元B轮融资,这家Tier 1抢跑「L2/L2+」主战场
  18. 「行业/市场分析」简说
  19. 台式计算机电功率一般多大,笔记本电脑耗电吗?功率一般多大
  20. ssm框架整合(含ssm配置)实现crud

热门文章

  1. 【C 语言】字符串模型 ( 键值对模型 )
  2. 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
  3. 【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存
  4. 【Android 组件化】路由组件 ( 组件间共享的服务 )
  5. DataList自定义分页
  6. 关于读构建之法后的疑惑
  7. wubantu18.04版,pycharm2.18.3.2永久破解来了,借鉴个位大神的教程破掉的,感谢各位大佬...
  8. python之运算符
  9. javascript实现正整数分数约分
  10. java stringBuilder的用法