学习Hibenate随笔

时间:2024-05-23 22:36:56

1.Hibenate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,将pojo类与数据库表建立映射关系,是一个全自动orm框架,Hibenate可以自动生成sql语句,自动执行。

2.核心API:Session、SessionFactory、Transaction、Query、Criteria和Configuration,通过这些接口,可以对持久化对象进行存取、事务控制。

3.Session:Session接口负责执行被持久化对象的CRUD(CRUD任务是完成与数据库的交流,包含了许多常见的sql语句),Session是非线程安全的。这里的是Hibenate的sessoin,不同于jsp的HttpSession,称用户session。

4.SessionFactory:负责初始化Hibenate,充当数据源的代理,并负责创建session对象,SessionFactory并不是轻量级的,一般情况下一个项目有一个SessionFactory,操作多个,需要为每一个数据库创建一个SessionFactory。

5.transaction事务:访问并可能更新数据库各项数据项的一个执行单元。特性:原子性、一致性、隔离性数据库、持久性。

  原子性:一个事务是一个不可分割的工作单位,事务中包括的诸多操作,要么都做要么都不做。

  一致性:事务必须是使数据库从一个一致性状态转变到另一个一致性状态,一致性是与原子性密切相关的。

  隔离性:一个事务的执行不受其他事务的干扰,一个事务内部的操作及使用的数据对并发的其他事务隔离,并发执行的各个事务之间相互不影响。

  持久性:一个事务一旦提交,它对数据库的影响是永久的。接下的操作不当也不会对它产生影响。

6.Query:方便的对数据库及持久化对象进行查询,有两种查询方式HQL语言和本地SQL查询。用来绑定查询,限制查询数量,最终执行查询操作。

7.Criteria:和Query接口类似,允许创建并执行面向对象的标准查询,但它只能和session一起使用。

8.Configuration:作用是配置Hibenate以及启动,Hibenate启动时,首先定位映射文档的位置,读取配置文件,创建一个SessionFactory。

9.有9种主键。。。。:https://baike.so.com/doc/2610851-2756769.html

10.缓存管理:Hibenate有两级Cache(告诉缓存存储器),第一级别的缓存是session缓存,属于事务范围缓存,由Hibenate管理;第二级别的缓存是SessionFactory缓存,属于进程范围或集群范围的缓存,可以进行配置和修改,Hibenate还为查询结果提供了一个查询缓存,依赖于二级缓存。

11.Hibenate工作原理: 

  (1)、通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件

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

  (3)、通过config.buildSessionFactory();//得到sessionFactory。

  (4)、sessionFactory.openSession();//得到session。

  (5)、session.beginTransaction();//开启事务。

  (6)、persistent operate;

  (7)、session.getTransaction().commit();//提交事务

  (8)、关闭session;

  (9)、关闭sessionFactory;