1、什么是Hibernate
- Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架(ORM,对象关系映射 Object Relationship mapper)
- ORM 就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作
- 轻量级:指的是对于内存,cpu资源消耗比较小,学习也相对容易。
- 发展由来:
- jdbc实现DAO数据访问,dbutils框架来实现DAO操作可以简化数据库操作(但还不能脱离sql语句),hibernate也是一个持久层(DAO)框架不需要编写相关的sql语句就可以操作数据库。
- Orm对象关系映射要完成的工作是什么?
- 完成的是类与表的映射,类中属性与表字段的映射。它们之间的这种映射关系是非常严格的,有专门的文件来实现这种映射关系的配置(配置文件实质就是一个xml文件,*.hbm.xml)。*的取名一般为实体类的类名。
- Hibernate要操作数据库同样也需要连接数据库,要连接数据库就必须有连接数据库的四项基本信息(driver, url,username,password),hibernate中为了规范(hibernate配置文件中包含有数据库连接的基本信息,文件名:hibernate.cfg.xml)
- Hibernate 就是底层使用了jdbc实现,并进行了封装的一个轻量级的持久化解决方案。
- Hibernate提供了对关系型数据库增删改成操作
- JPA Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系(只有接口规范)
- Hibernate 最流行ORM框架,通过对象-关系映射配置,可以完全脱离底层SQL
- MyBatis 本是apache的一个开源项目 iBatis,支持普通 SQL查询,存储过程和高级映射的优秀持久层框架
- Apache DBUtils 、Spring JDBCTemplate
- 持久化技术有哪些?按封装程序由高到低排列
- Hibernate>mybatis>spring jdbcTemplate ,dbutils > jdbc
2、Hibernate的优点
Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作
Hibernate使用java的反射机制,而不是字节码增强程序类实现透明性
Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系。
- Hibernate本身性能不是很好,存在很多优化手段(一级缓存、二级缓存、查询缓存、抓取策略)
3、Hibernate准备工作
准备hibernate3.x的开发包
- 网址:http://sourceforge.net/projects/hibernate/files/hibernate3/
- 开发包文件结构
lib文件夹内容
补充:log4j(log for java) 用于记录日志
- Log4j的主要作用是解放程序员,避免程序员去操作IO流。
- 什么是日志?
- 用文本的方式将软件操作过程中所发生的一系列操作全部记录下来
- 如何学习log4j?
- 导入log4j.jar包
- 学习如何配置log4j(配置文件:src/log4j.properties)
准备完整所需的Hibernate的jar包
准备hibernate配置文件(hibernate.cfg.xml)
- DTD约束文件在MyEclipse中的关联
准备hibernate映射文件
4、Hibernate操作
7个步骤
1.加载hibernate配置文件及映射文件
2.得到SessionFactory对象(好比数据库连接池)
3.得到Session对象(好比数据库连接Connection)
4.开启事务
5.执行CRUD操作
6.提交或回滚事务
7.关闭资源(session关闭 sessionFactory关闭 )
- 补充:如何解决org.hibernate.MappingException: Unknown entity: cn.itcast.domain.User
- ![这里写图片描述](https://img-blog.csdn.net/20150907142201220)