Hibernate是一个ORM框架。要学习Hibernate,我们首先得要来了解一下什么是ORM。
ORM(Object Relational Mapping),又叫对象关系映射。
ORM通过对象关系映射机制来解决硬编码SQL问题、支持多数据库
不同的数据库有不同的方言 →ORM自定义一个语法 →根据方言配置,翻译为对应的SQL
hibernate通过session对象(不是http的session,数据库操作工具)来简化数据库操作
- session对象提供一系列数据库操作功能
- 开发人员无需处理数据库连接获取等问题
hibernate的性能优化方案:
- 集成了数据库连接池(自己提供一个连接池,但是在生产环境下,建议使用第三方连接池,可以接入,譬如C3P0,因为他自带连接池性能很差、而且没有定期检查连接是否有效这些机制)
- 提供对象池,也就是缓存,分为一级缓存、二级缓存
Hibernate中的session对象除了提供数据库操作功能,还为“数据对象”提供对象池:一级缓存。
假如一个事务中,创建一个session对象,在该事务过程中,通过session查询过的对象,在缓存中都会有保存,再次取出时,如果数据没有改变,就无需再次查询数据库。
每个session对象都有自己独立的对象池(缓存)。 - 通过一些代码生成工具,进一步解决工作量大的问题 譬如:MyEclipse
Hibernate反向工程工具,设计好数据表后,可以自动生成对应的DTO、DAO、XML等。
具体步骤可参考MyEclipse2014使用Hibernate逆向工程生成实体类