Hibernate知识整理1----基础理论

    前言:ssh等框架是在我们之前的J4架构的基础上进行的系统性的优化。原始的架构实现由于重复代码太多,工作量大、团队在数据逻辑上浪费大量精力、系统耦合性过强,导致开发周期长,修改维护难度大等问题。各种框架的出现很好的解决了这些问题,而其中使用最广泛的就是SSH和SSM了。

1. hibernate框架的出现

各类框架都是在原始的架构之上结合先进的技术思想进行针对性优化而形成的,而hibernate是对于原始架构的DAO层进行优化而形成的框架。
在原始架构项目开发的时候,DAO层使用JDBC与数据库进行数据对接,每次打开关闭消耗都很大。而实际上,有时候我们也并不仅仅使用一个数据库,有时候在客户要求下需要切换不同数据库,由于不同数据库之间的语言之间都会存在一定的差异,因此,需要改动的地方很多,工作量太大。hibernate的出现恰好解决了这些问题。**hibernate框架是基于ORM框架思想而形成的,ORM即对象关系映射框架。**ORM通过对象关系映射机制来解决硬编码SQL问题、支持多数据库。对象即数据封装对象,hibernate是通过对象映射关系来进行数据操作的。也就是说hibernate操作的是数据封装对象,而以前我们操作的是数据项,因此使用hibernate的HQL可以翻译成其他数据库语言。也就是说,在切换数据库的时候,我们仅仅需要修改配置文件就行了。hibernate虽说没有以前那么灵活了,但是方便很多。(使用这些框架不可避免的会造成一些性能上的损耗)

目前行业中的ORM框架有:
Hibernate:最流行
iBatis:更灵活、但要自己写sql语句、代码量比较大
TOPLINK(oralce):商业使用要收费
Entity EJB:重量级、高花费,必须运行在EJB容器(服务器)

2.对于1的补充
hibernate通过session对象(不是http的session,数据库操作工具)来简化数据库操作,session对象提供一系列数据库操作功能,因此,开发人员无需处理数据库连接获取等问题。

hibernate内置的连接池很差,而且没有定期检查连接是否有效这些机制,因此建议使用第三方连接池。hibernate可以接入C3P0等连接池,只需完善配置文件即可。

Hibernate中的session对象除了提供数据库操作功能,还为“数据对象”提供对象池:一级缓存。

假如一个事务中,创建一个session对象,在该事务过程中,通过session查询过的对象,在缓存中都会有保存,再次取出时,如果数据没有改变,就无需再次查询数据库。
每个session对象都有自己独立的对象池(缓存)。

ORM还提供了很好的性能优化解决方案,通过池化(缓存)等技术来优化数据库连接、持久化对象生命周期的管理。

3.使用
只是简单整理一下使用流程:
1.增加JAR支持
2.写hibernate配置文件 hibernate.cfg.xml ,放在SRC根目录下
3.为每个表写一个对应的实体类DTO
4.为每个表写一个 实体类<—>表 的映射文件 *.hbm.xml,通常放在同实体类同一个包中.
(也可以不写hbm.xml,可以通过注解的方式去定义映射关系)
5.将*.hbm.xml映射文件注册到 hibernate.cfg.xml 中
6.编写代码进行测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值