hibernate使用

1.为什么需要使用Hibernate

1)Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,可以自动完成object和关系数据库之间的转换,提高开发效率。用Hibernate,通过面向对象的方式进行查询(对查询结果自动封装到实体,而不像jdbc那样手动封装)、轻量级封装jdbc操作是它最大的优势。

2)hibernate可以跨数据库。 作为一个通用orm框架,首先必须兼容主流的数据库,如果hibernate只能在某一个数据库上跑。那它肯定不会有目前的成就。

3)结果这一点就变成了很多产品开发的基础,这些产品只需要关注自己的业务,不需要考虑在不同的数据库之间进行迁移了,一切底层都交给hibernate,只做好自己擅长的事情,花最少的时间获得最大的价值。

4)hibernate上面附着了一大堆的扩展,hibernate-validator可以做数据校验,hibernate-search可以玩全文检索,hibernate-shard可以做水平分表。

Hibernate的性能非常好,因为它是个轻量级框架,映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

2.Hibernate使用步骤

1)    导入hibernate的jar文件和数据库的jar文件

2)    编写hibernate配置文件,hibernate.cfg.xml,默认放在src目录,此文件保存数据库的连接信息,hibernate全局属性信息,以及关联的实体映射文件。

3)    编写实体及实体映射文件。如果是在3.2以上版本,则可用注解的方式,可不需要编写.hbm.xml文件。

 

编写完了配置文件之后,具体的使用步骤如下:

1)    读取并解析配置文件

2)    读取并解析映射信息,创建SessionFactory

3)    打开Session

4)    创建事务Transaction

5)    持久化操作

6)    提交事务

7)    关闭Session

8)    关闭SessionFactory

上面这些步骤是在单独使用Hibernate的步骤,如果通过spring集成Hibernate,则代码更加的简单。例如使用Spring的AOP声明式事务,则不需要手工开启和关闭Session及提交或回滚事务。

3.iBatis与Hibernate有什么不同?

相同点:屏蔽jdbc api的底层访问细节,使用我们不用与jdbc api打交道,就可以访问数据。

jdbc api编程流程固定,还将sql语句与java代码混杂在了一起,经常需要拼凑sql语句,细节很繁琐。

ibatis的好处:屏蔽jdbc api的底层访问细节;将sql语句与java代码进行分离;提供了将结果集自动封装称为实体对象和对象的集合的功能,queryForList返回对象集合,用queryForObject返回单个对象;提供了自动将实体对象的属性传递给sql语句的参数。

 

Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,ibatis需要我们自己在xml配置文件中写sql语句,hibernate要比ibatis功能负责和强大很多。因为hibernate自动生成sql语句,我们无法控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值