1、什么是Hibernate?

Hibernate是一个开源的数据库持久层框架

Hibernate是一个全自动化ORM框架。


注:ORM,object relational mapping,对象关系映射。它是一种为了解决面向对象和关系型数据库存在的互不匹配的现象的技术。

orm通过使用描述对象和数据库之间映射的元数据,将java中的对象自动持久化到关系型数据库中。


2、Hibernate主要做什么事情?

将java实体类中的东西存入到关系型数据库中

实体类对应关系型数据库中的表

实体类中的属性对应关系型数据库中的一个列

实体类中的一个实例对应关系型数据库表中的一条记录


3、Hibernate的优点和缺点

优点:

1)、更加面向对象化,使用Hibernate不需要编写SQL语句和编辑JDBC代码,只需要操作相应的对象就可以进行CRUD操作

2)、可移植性好,更换数据库时,只需要配置相应的配置文件即可

3)、实现透明持久化,当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口。因为hibernate操作的只是一个单纯的POJO对象

4)、hibernate是一个无侵入式的框架,即轻量级框架

缺点:

1)、不适合批量性操作,因为hibernate只是针对单个对象进行操作

2)、如果要求使用特定SQL语句时,hibernate不使用。因为Hibernate不使用SQL语句


4、Hibernate的工作原理

1)、读取并解析配置文件

Configuration config=new Configuration().configure();  //读取hibernate.cfg.xml配置文件

Configuration config=new Configuration();                      //读取hibernate.properties配置文件

2)、读取并解析映射信息,创建sessionFactory

3)、打开session

Session session=sessionFactory.openSession();

4)、创建事务Transaction

Transaction tx=session.beginTransaction();

5)、进行持久化操作

6)、提交事务

tx.commit();

7)、关闭session和sessionFactory


5、Hibernate的6大核心接口

1)、Configuration:负责配置并启动hibernate,创建SessionFactory

2)、SessionFactory:负责初始化hibernate,创建session对象

3)、Session:负责被持久化对象的CRUD操作

4)、Transaction:负责事务相关操作

5)、Query和Criteria接口:负责执行各种数据库查询


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐