Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

Hibernate的优点

对JDBC访问数据库的代码做了封装,非常简化了数据访问层繁琐的重复性代码

Hibernate是一个机遇JDBC的主流持久化框架,是一个非常优秀的ORM实现。能够非常多大程度的简化DAO层的编码工具

Hibernate使用Java反射机制,而不是通过字节码增强程序来实现透明性

Hibernate的性能非常好,因为它是个轻量级框架,映射的灵活性很出色,支持各种关系数据库和多种复杂关系

那么什么是ORM框架

ORM,就是对象-关系映射,面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系型数据库更应用环境中永久存放数据的主流数据存储系统,对象和关系数据是业务的两种表现形式,因此ORM系统一般以中间件的形式存在,主要实现持续对象到关系型数据库数据的映射

Hibernate的工作原理

通过Configurationconfig=newConfiguration().configure();//读取并解析hibernate.cfg.xml配置文件

由hibernate.cfg.xml中的<mappingresource="com/xx/User.hbm.xml"/>读取并解析映射信息

通过SessionFactorysf=config.buildSessionFactory();//创建SessionFactory

Sessionsession=sf.openSession();//打开Sesssion

Transactiontx=session.beginTransaction();//创建并启动事务Transation

persistentoperate操作数据,持久化操作

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

关闭Session

关闭SesstionFactory

Hibernate的缓存机制

一级缓存就是Session级别的缓存,在事务范围内有效是,内置的不能被卸载。二级缓存是SesionFactory级别的缓存,从应用启动到应用结束有效。是可选的,默认没有二级缓存,需要手动开启。保存数据库后,缓存在内存中保存一份,如果更新了数据库就要同步更新。

那么什么数据适合放在二级缓存呢

较少被修改的数据,例如:帖子最后回复时间

基础被查询的数据

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

不会被并发访问的数据

常量数据