SSH中的Hibernate
就是DAO连接数据库对数据进行实际操作,做了架构简化,对数据库的操作。
- JDBC操作数据库很繁琐
- SQL语句不是面向对象的
- 可以在对象和关系表之间建立关联来简化编程
- O/R Mapping简化编程
- O/R Mapping跨越数据库平台
一. configuraton
a) AnnotationConfiguration
b) 进行配置信息的管理
c) 用来产生SessionFactory
d) 可以在configure方法中指定hibernate配置文件
e) 只需记住一个方法: buildSessionFactory()
二.SessionFactory
a) 用来产生和管理Session
b) 通常情况下,每个应用只需要一个SessionFactory
c) 除非要访问多个数据库的情况
d) 关注两个方法,OpenSession(过时),getCurrentSession()
1 OpenSession每次都是新的,需要close
2 getCurrentSession从上下文寻找,如果有,直接用,没有,就新建
三.Session
a) 管理一个数据库任务单元
b) 方法
- Save()
- Delete()
- Load()
- Get()
- Get与load的区别
- 不存在对应的记录是,表现不一样
- Load返回的是代理对象,等到真正用到对象的内容是才发出SQL语句
- Get立马从数据库加载,不会延迟
- Update
- 用来更新detached(游离)对象,更新完成后转为persistent状态
- 更新transient对象会报错
- 更新自己设定id的transient对象可以(数据库有对应记录)
- P状态的对象只要设定不同字段就会发生更新
- 更新部分更改的字段