Hibernate再复习(一)

在学校里学过一次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进数据的,还有一个要注意的点是单一主键

下节再说。

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值