- hibernate篇
1.1什么是CRM
CRM 客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与客户之间在销售、营销和服务上的交互,向客户提供交互和服务的过程;最终目的是组建一个以客户为中心的企业,实现面向客户的活动的全面管理
1.2、什么是Hibernate
Hibernate 框架是一个开放源代码的ORM(对象关系映射)框架 是对JDBC进行轻量级的对象封装。
Hibernate 就是一个持久层的ORM的框架
ORM:对象关系映射
让实体类和数据库表进行一一对应关系
让实体类和数据库表对应
实体类的属性和表中的字段对应
不需要直接操作数据库表,而是操作实体类对应的对象即可。
1.3、Hibernate的相关的API:
1.3.1、Configuration:配置对象
Configuration 主要用于Hibernate 框架加载映射文件
通常使用 Congfiguration config = new Configuration().configure();的方式来创建
1.4、SeesionFactory:Seesion工厂对象
1.4.1、SeesionFactory 接口负责Hibernate的初始化和建立Session对象,它在hibernate中起到一个缓存区的作用 ,hibernate自动生成sql 语句存放在这个缓存区
SessionFactory 实例 是通过Configuration = config.buildSessionFactorty();
SessionFactory具有的特点:
它是线程安全的,它的同一个实例能够供多个线程共享
它是重量级的。不能睡意的创建和销毁它的实例
一般情况下一个项目只需创建一个SessionFactory,这个过程非常消耗资源。
1.5、Session
1.5.1、session接口负责执行被持久化对象的增删改查
Session对象是非线程安全的
Session 是应用程序与数据库之间交互操作的一个单线程对象,是hibernate 运作中心。
获取Session实例有两种方式 一种是通过openssion()方法,另一种是通过getCurrentSession()方法,代码如下:
//采用openssion方法创建session
Session session = SessionFactory. openssion();
//采用getCurrentSession()方法创建
Session session = sessionFactory.getCurrentSession();
1.6 Trasaction
1.6.1接口主要用于管路事务,Trasaction接口的事务对象是通过Sessum对象开启的,开启方式如下:
Transaction transaction = session.beginTransaction();
在Transaction接口中,提供了事务管理的常用方法,具体如下:
• commitO方法:提交相关联的session实例。
• rollbackO方法:撤销事务操作。
事务
要么同时成功 要么同时失败
原子性 、一致性 、隔离性、持久性
原子性:要么全部执行。要么全部都不执行
一致性:表示事务完成时 必须所有的数据都保持一直状态
隔离性:并发执行的各个事务互相不干扰
持久性:事务一旦提交它对数据库中数据的改变是永久性的。提交后的操作或故障不会对其有任何影响
事务的并发问题:
- 脏读:一个事务读取到另一个事务未提交的数据
- 不可重复读 一个事务读到了另一个事务已经提交的update的数据,导致在同一个事务中查询结果不一致
- 虚读/幻读:一个事务读到了另一个事务已经提交的indert的数据导致在同一个事务中查询结果不一致