持久化就是有两种:文件和数据库,即把一个东西长久的保存起来。
Hibernate是什么?
1.hibernate是一个框架
2.hibernate是一个ORM框架
- ORM(Object relation mapping)对象关系映射
3.hibernate处于项目的持久层位置(正因为如此,所以有人有把hibernate称为持久层框架)
4.hibernate实际上就是对jdbc进行了轻量级的封装
5.hibernate的基础还是Java的反射机制(****)
总结:(用自己的话总结一下别人教给你的,这就成为自己的了)
hibernate是对jdbc进行轻量级封装的ORM框架,处于项目的持久层位置
为什么需要hibernate?
如果没有框架,换数据库需要重写业务层,SQL语句都是在业务中写的,比如从SQL serve换成MySQL,分页等SQL就不一样了需要修改
hql语言自己针对数据库进行翻译,业务层程序员不需要知道用的什么数据库,业务层只出现对象
持久层之所以能做到这一点(需要学的三个重点):hibernate api ,hibernate.cfg.xml ,对象关系映射文件
好处:
1.工作人员角色细化
2.分层更清晰,耦合性更小
3.通用性强,可以更轻松的从一个数据库平台转移到别的平台
4.对象化,把关系数据库变成了Java对象,更加方便操作
5.性能保证,hibernate可能按不同的数据库,处理不通风的操作是用最优化的SQL语句
6.增加了程序的鲁棒性
快速入门案列
(struts不能用在j2se项目中,因为它是web层的框架,hibernate在j2se和j2ee(web)项目中都能用)
使用手动配置hibernate方式开发一个hibernate项目,完成crud操作
开发流程:
1.创建一个项目()
2.画出一个简单的项目框架示意图
3.引入hibernate开发包(http://www.hibernate.org 官网)
4开发三种方式:(一张表对应一个domain对象,能无缝对接转换的原因即是持久层重要的文件:对象关系映射文件[该文件会说明表和对象的关系])
- 由domain Object-->mapping-->db(官方推荐)(对象写清楚了,表就自动生成了)
- 由DB开始,用工具生成mapping和Domain Object
- 由映射文件开始
使用第二种方法开发项目,先创建Employee表
5.开发Domain对象和对象关系映射文件(Domain对象也叫Javabean ,pojo[plain old/ordinary java object ,简单Java对象])
对象关系文件的作用就是用于指定Domain对象和表的映射关系,该文件的取名有规范:Domain对象.hbm.xml,一般和Domain对象同一个包下
6.手动配置hibernate.cfg.xml文件,该文件用于配置连接的数据库的类型,driver,用户名,密码,url。同时管理对象关系映射文件。。该文件的名称,一般不修改
7.创建测试文件,在view中,view中只见对象不见表
(4.增删改时只能通过事务方式提交,session。save方法就相当于insert语句,持久层自动将其转换为相对应的语句,将其插入数据库中)
- 在配置中可以配置显示save操作对应的SQl语句,运行时在控制台可以输出SQl语句