1、什么是Hibernate
hibernate(是一个开源的轻量级(就是不需要依赖其他就可以运行)框架)是应用在dao层(持久化层)的一个框架,是对数据库的crud操作(就是增删改查操作),就是对jdbc进行的封装,不在写复杂的SQL语句,只需要在配置文件中配置即可。
session:负责被持久化对象CRUD操作 sessionFactory:负责初始化hibernate,创建session对象 configuration:负责配置并启动hibernate,创建SessionFactory Transaction:负责事物相关的操作 Query和Criteria接口:负责执行各种数据库查询
2、hibernate 的原理及其步骤
1.通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xml中的读取并解析映射信息 3.通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory 4.Session session = sf.openSession();//打开Sesssion 5.Transaction tx = session.beginTransaction();//创建并启动事务Transation 6.persistent operate操作数据,持久化操作 7.tx.commit();//提交事务 8.关闭Session 9.关闭SesstionFactory
3、hibernate的实体类对象的状态
1、瞬时态:对象里面没有id值,对象与session没有关联
就是在程序中有数据,而在数据库中没有数据,并且数据连接断开
2、持久态:对象里有id值,对象与session没有关联
就是在程序中和数据库中都有数据,并且数据连接没有持续连接中。
3、托管态:对象里面有id值,对象与session没有关联
就是在在持久态的时候,数据库的连接断开,所有程序中的数据都成为游离态
4、配置映射配置文件:
配置实体类和数据库表的一一对应关系(映射关系)————使用xml配置
xml文件的位置和名称没有固定要求(个人建议和实体类放一起,名字随意)
引入dtd的约束
5、为什么要用hibernate:
- 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
- Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
- hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
- hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
6、Hibernate的优点:
1、对象化。
hibernate可以让开发人员以面相对象的思想来操作数据库。jdbc只能通过SQL语句将元数据传送给数据库,进行数据操作。而hibernate可以在底层对元数据和对象进行转化,使得开发者只用面向对象的方式来存取数据即可。
2、更好的移植性。
hibernate使用xml或JPA的配置以及数据库方言等等的机制,使得hibernate具有更好的移植性,对于不同的数据库,开发者只需要使用相同的数据操作即可,无需关心数据库之间的差异。而直接使用JDBC就不得不考虑数据库差异的问题。
3、开发效率高。
hibernate提供了大量的封装(这也是它最大的缺点),很多数据操作以及关联关系等都被封装的很好,开发者不需写大量的sql语句,这就极大的提高了开发者的开发效率。
4、缓存机制的使用。
hibernate提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益。
7、Hibernate的缺点:
1、灵活性和效率不如原生JDBC程序。
由于对持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活使用JDBC的原生SQL。
Hibernate封装了JDBC,但没有原生的JDBC程序直接访问数据库效率高。要使用数据库的特定优化机制的时候,不适合用Hibernate 。
2、配置文件复杂。
框架中使用ORM原则,导致配置过于复杂,一旦遇到大型项目,比如300张表以上,配置文件和内容是非常庞大的,另外,DTO满天飞,性能和维护问题随之而来
【文章原创作者响水网站建设公司 http://www.1234xp.com/xiangshui.html 欢迎留下您的宝贵建议】