一、什么是Hibernate
Hibernate(冬眠)对于对象来说就是持久化(persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,也可存储在磁盘文件中、xml数据文件中…
持久化,是将程序数据在持久状态和瞬时状态间转换的机制。JDBC就是一种持久化机制,文件IO也是一种持久化机制。
1.Hibernate是对jdbc的进一步封装。没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了Hibernate把JDBC封装了一下,我们不用操作数据,直接操作就行。
2.在三层架构中,Hibernate是持久层的框架,持久层框架还有很多,如:IBatis,Nhibernate,JDO,OJB,EJB等等。
3.Hibernate是开源的一个ORM(对象关系映射)框架。它在关系型数据库和对象之间做了一个映射。从对象映射到关系,再从关系映射到对象。这样,我们在操作数据库的时候,不需要再去和复杂SQL打交道,只要像操作对象一样操作它就可以了(把关系数据库的字段在内存中映射成对象的属性)。
二、Hibernate的核心
以上是Hibernate六大核心接口,两个主要配置文件,以及他们直接的关系。
1.Configuration接口:负责配置并启动Hibernate
2.SessionFactory接口:负责初始化Hibernate
3.Session接口:负责持久化对象的CRUD操作
4.Transaction接口:负责事务
5.Query接口和Criteria接口:负责执行各种数据库查询
注意:Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃了。
三、Hibernate的优缺点:
优点:
1.更加对象化。以对象化的思维操作数据库,只需要操作对象即可。
2.移植性。Hibernate做了持久层的封装,所有代码都具有可复用性。
3.Hibernate是一个没有侵入性的框架,是轻量级的。Hibernate无需继承任何类,无需实现任何接口,它就是POJO对象。
4.Hibernate代码测试方便。
5.效率高。
缺点:
1.使用数据库特性的语句,很难调优。
2.对大批量数据更新存在问题。
3.系统中存在大量的攻击查询功能。
四、用MyEclipse自动生成hibernate映射文件和实体类(MySQL和Oracle的方法一样,只是在创建数据库连接的地方需要注意Connection URL的写法不同,这里以MySQL为例)
首先需要新建一个web project,选中项目右击
创建一个数据库,并且在数据库中添加若干表
1.创建数据库student,创建相应的student表
2.创建数据库连接(如果已经有可省略)
3.生成实体类和映射文件
完成后,可在指定位置找到生成的映射文件和实体类对象。