Hibernate基础知识总结

Hibernate是JDBC的轻量级的对象封装(encapsulation),它是一个独立的对象持久persistence层框架。 hibernate要作的事,就是让对象投影到关系数据库中,而后实施化。它把数据层和业务层实现的解耦,这样能很好的转化想要的数据库。数据库

1、hibernate的核心接口:缓存

session:负责被持久化对象CRUD操做;session

sessionFactory:负责初始化hibernate,建立session对象;并发

configuration:负责配置启动hibernate,建立sessionFactory;app

Transaction:负责事务项目的相关操做;框架

Query和Criteria接口:负责执行各类数据库查询;优化

2、hibernate的工做原理:ui

一、经过Configuration config=new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件hibernate

二、由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>//读取并映射信息插件

三、经过SessionFactory sf=config.buildSessionFactory();//建立SessionFactory

四、Session session=sf.openSession();//打开session

五、Transaction tx=session.beginTransaction();//建立并启动事务Transaction

六、persistent operate操做数据,持久化操做

七、tx.commit();//提交事务

八、关闭Session

九、关闭SessionFactory

3、hibernate的好处:

一、对JDBC访问数据库的代码封装,大大简化了数据访问层繁琐的重复代码。

二、hibernate是轻量级框架,支持各类数据库,从一对一到一对多的各类复杂关系。

4、hibernate的缓存机制:

hibernate的缓存包括两大类:一级缓存(session缓存)和二级缓存(SessionFactory缓存)

一级缓存:他是内置的,就是说只要你使用hibernate就必须使用session缓存。因为session对象的声明周期一般对应一个数据库事务或者一个应用事务,所以他的缓存时事务范围的缓存。在一级缓存中,持久化类的每一个实例都具备惟一的OID。

二级缓存:因为二级缓存对象的生命周期和应用程序的整个过程对应,所以hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,所以须要采起适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。二级缓存时可选的,是一个可配置的插件,默认状况下不会启动。

什么样的数据应该放在二级缓存?

一、不多被修改的数据

二、不是很重要的数据,容许出现偶尔并发的数据

三、不会被并发访问的数据

四、常量数据

不适合放在二级缓存中的数据?

一、常常被修改的数据

二、不容许出现并发访问的数据

三、与其余应用共享的数据

5、如何优化hibernate?

一、使用双向一对多关联,不适用单向。

二、使用一对多取代一对一

三、配置对象缓存,不适用集合缓存

6、get和load的区别?

一、get()方法直接返回实体类,若是查不到数据则返回null,不会报错。load()会返回一个实体代理对象,当代理对象被调用时,若是没有数据存在,就会抛出异常load支持延迟加载,get不支持。

相关文章
相关标签/搜索