在学校里学过一次hibernate,但很久没有接触了,再次复习是观看慕课网中的视频做出的整理文档。http://www.imooc.com/learn/396
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、为什么使用hibernate
首先介绍一下ORM的概念:对象/关系映射。就是利用面向对象思想编写的数据库应用程序,最终都是把对象信息保存在关系型数据库中,需要编写很多和底层数据库相关的SQL语句。
但是在程序中编写SQL会存在部分问题:
1.不同的数据库使用的SQL语法不同。如PL/SQL:ORACLE,T/SQL:Microsoft
2.同样的功能在不同的数据库中有不同的实现方式。例如分页SQL,在oracle中用rownumber,在MySQL中用limit。
为了让程序员抛弃写SQL的思想,完全使用面向对象思想来开发软件,则需要一个可行的ORM框架技术——Hibernate。
二、hibernate是什么
hibernate是Java一款开源的ORM框架,在JDBC的基础上进行了一种非常轻量级封装,最终还是通过JDBC实现数据库的操作。
其他的ORM框架技术有:MyBatis/Toplink/EJB(重量级)。
在之前的MVC模式中,业务逻辑层和数据库层统称为MODEL。一般由业务逻辑层直接对数据库层执行数据操作,而hibernate相当于在业务逻辑层和数据库层之间的一层,我们称为“持久化层”。
hibernate对那些操作数据库的SQL进行封装成方法(save/update/get/delete),本来需要写很多和底层数据库相关的SQL语句,现在只需调用方法就可以将数据存储或读取数据。
三、Hibernate开发基本步骤
1.编写配置文档hibernate.cfg.xml
2.编写实体类
3.生产对应实体类的映射文件(**.hbm.xml)并添加到配置文件(**.cfg.xml)中
4.调用hibernate API进行测试
总结:
cfg.xml——持久类(JAVABEANS)——hbm.xml(创建完持久类后,再创建这个文件会自动生成映射)——之后要在cfg.xml里添加标签:<mapping resource = "Students.hbm.xml" />——测试类进行调用方法测试。
-------------------------------------------------------------------------
详细步骤如下: 首先安装插件/导入jar包(hibernate、Junit4、MySQL)、自动提示jar包(dtd)
【1】编写配置文档
【2】编写实体类(注意的点)
1.公有类
2.提供一个公有的、不带参数的构造方法
3.属性私有
4.属性由setter/getter封装
5.方便测试toString()
【3】生成映射文件hbm.xml
【4】调用hibernate API进行测试
四、hibernate执行流程
1.Session对象
Session是操作数据库的对象,与connection是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。
Session有这些方法:save\update\delete\crateQuery。
**如何获取Session对象**
2.事务Transaction
hibernate对数据的操作都是封装在事务中,并且默认是非自动提交的方式。
**使用事务的重要性**
如果不开启事务,并且手工提交事务,对象不会真正保存在数据库中。
doWork()可以实现自动提交,但不建议使用。
在往实体类里set进数据的,还有一个要注意的点是单一主键。
下节再说。