上一篇关于hibernate学习笔记一,主要是作为hibernate的入门知识。没有和spring发生任何关系,这一篇我将把spring集成进去,看spring如何管理hibernate,还有和未使用spring之前有什么区别?将在文章后面附上使用spring集成和不使用spring集成,不同的地方。好,开始spring集成hibernate的学习之旅。

还是准备必要的jar包,如图:

下面,开始新建项目工程,新建普通的java project,如图:

其实,跟上一篇博客中的工程文件没多大区别,主要的区别是去掉了hibernate.cfg.xml,增加了applicationContext.xml配置文件,主要原因是把hibernate交给spring来管理,所以hibernate.cfg.xml文件就不需要了

其中,model类中的实体类没多大区别,主要看一下spring配置文件applicationContext.xml中的具体配置内容。代码如下:

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost/test"></property><property name="username" value="root"></property><property name="password" value="123456"></property></bean><bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="mappingLocations"><list><value>classpath*:/cn/***/hibernate/model/*.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property></bean><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="hibernateSessionFactory"></property></bean><bean id="teacher" class="cn.***.hibernate.model.Teacher"></bean>
</beans>

其中,数据源配置,我们采用了dbcp,代码如下:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost/test"></property><property name="username" value="root"></property><property name="password" value="123456"></property></bean>

这一部分和未使用spring集成之前的区别是,我们把数据源datasource配置在了hibernate.cfg.xml中

还有,使用了spring之后我们采用如下的配置方式,加载*.hbm.xml文件(其实加载该配置文件的方式有很多中,具体参照spring的文档),代码如下:

<bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="mappingLocations"><list><value>classpath*:/cn/***/hibernate/model/*.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property></bean>

比较关键的配置,就是下面的配置方法(spring采用这种配置去加载多个*.hbm.xml文件):

<property name="mappingLocations"><list><value>classpath*:/cn/***/hibernate/model/*.hbm.xml</value></list></property>

下面,就是我们真正看到spring和hibernate集成的主要地方,也是我们要使用hibernate的核心:

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="hibernateSessionFactory"></property></bean>

我们使用hibernateTemplate来保存实体到数据库。

好到此为止,我们使用spring来管理hibernate的学习已经完成,下面使用代码来进行测试

import java.util.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.HibernateTemplate;import cn.git.hibernate.model.Teacher;public class TeacherTest {/*** @param args*/public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");HibernateTemplate template = (HibernateTemplate) context.getBean("hibernateTemplate");Teacher teacher = (Teacher) context.getBean("teacher");teacher.setName("spring_hibernate");teacher.setAddress("spring");teacher.setYear(new Date());template.save(teacher);}}

查看一下数据库,看采用该方式是否能成功保存数据到数据库

数据成功保存到数据库,该篇学习笔记大功告成,结束。。。

hibernate学习笔记二相关推荐

  1. Hibernate学习笔记(二)

    Hibernate概述: 什么是Hibernate:是一个持久层的ORM的框架 什么是ORM: ORM:对象关系映射,指的是将一个java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可 ...

  2. Hibernate学习笔记二:Session

    Session概述 Session是Hibernate提供的最主要的接口,它提供了基本的保存, 更新, 删除和加载 Java 对象的方法. Session 具有一个缓存, 位于缓存中的对象称为持久化对 ...

  3. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

  4. css中怎么加入立体模型,CSS学习笔记二:css 画立体图形

    继上一次学了如何去运用css画平面图形,这一次学如何去画正方体,从2D向着3D学习,虽然有点满,但总是一个过程,一点一点积累,然后记录起来. Transfrom3D 在这一次中运用到了一下几种属性: ...

  5. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  6. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  7. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  8. Scapy学习笔记二

    Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...

  9. Ethernet/IP 学习笔记二

    Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...

最新文章

  1. mysql延时优化教程_Slave延迟很大的优化方法总结(MySQL优化)
  2. 缓存插件 Spring支持EHCache缓存
  3. I am beginning perl
  4. lua------------------Unity3D研究院编辑器之打开unity不可识别的文件(十三)
  5. C++ opengl GL_LINE_STRIP的绘制
  6. 使用 jQuery Mobile 与 HTML5 开发 Web App (十七) —— HTML5 离线缓存
  7. 微服务架构下,DLI的部署和运维有何奥秘?
  8. 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别
  9. TensorFlow 1.11.0正式版发布了,强力支持Keras
  10. ubuntu安装libjasper.so.1,libpng12.so.0
  11. 微信公众号和服务器的关系,微信公众号、订阅号、服务号之间的关系和区别
  12. 每一个小孩都是种子,请允许Ta在成长的路上跌跌撞撞。耐心的等待,种子一定能长成参天大树!
  13. 【数学建模】2021 年全国大学生数学建模竞赛A题一等奖获奖论文
  14. 为防止办公用计算机上的数据,2019年9月计算机一级Ms Office提分练习题(总)
  15. #MATLAB /Simulink 错误记录
  16. 如何实现表格行列冻结
  17. 解密最近几年的新型骗局-情侣网店、未交易、淘宝内部券,你中招了几个
  18. 照片怎么改到100k?图片压缩到固定大小?
  19. 差压传感器和差压变送器的区别在哪里
  20. 旧金山州立大学计算机科学专业,美国留学旧金山州立大学 最受欢迎的十大专业...

热门文章

  1. 平面设计要掌握的实用技巧
  2. 安装python缺少dll_解决Python安装时报缺少DLL问题【两种解决方法】
  3. wordpress上传主题错误解决方法
  4. Linux的shell脚本函数教程
  5. python pip国内源_【Python】设置pip源为国内源及简单操作
  6. apache配置文件httpd.conf----小白福利
  7. 密码登录源码(jsp+java+数据库)
  8. 如何保存Tensorflow中的Tensor参数,保存训练中的中间参数,存储卷积层的数据
  9. Python 09--多线程、进程
  10. hihoCoder #1068 : RMQ-ST算法(模板)