码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate框架学习2

时间:2018-05-18 19:26:26      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:uuid   修改   img   rac   创建   query   current   oracl   lan   

 

 

 

 

 

 

 

 

 

 

hibernate中的实体规则

实体类创建的注意事项:

  1.持久化类提供无参数构造

  2.成员变量私有,提供共有get/set方法访问.需提供属性

  3.持久化类中的属性,应尽量使用包装类型

  4.持久化类需要提供oid.与数据库中的主键列对应

  5.不要用final修饰class  原因:hibernate使用cglib代理生成代理对象.代理对象是继承被代理对象.如果被final修饰.将无法生成代理.

 

主键类型

自然主键(少见)  表的业务列中,有某业务列符合,必须有,并且不重复的特征时,该列可以作为主键使用.

代理主键(常见)  表的业务列中,没有某业务列符合,必须有,并且不重复的特征时,创建一个没有业务意义的列作为主键

 

主键生成策略

代理主键     identity : 主键自增.由数据库来维护主键值.录入时不需要指定主键.

  sequence: Oracle中的主键生成策略.

  increment(了解): 主键自增.由hibernate来维护.每次插入前会先查询表中id最大值.+1作为新主键值.

  hilo(了解): 高低位算法.主键自增.由hibernate来维护.开发时不使用.

  native:hilo+sequence+identity 自动三选一策略.

  uuid: 产生随机字符串作为主键. 主键类型必须为string 类型.

自然主键       assigned:自然主键生成策略. hibernate不会管理主键值.由开发人员自己录入.

 

hibernate中的对象状态

瞬时状态      没有id,没有在session缓存中

持久化状态     有id,在session缓存中

游离|托管状态    有id,没有在session缓存中

 

hibernate进阶-一级缓存

缓存:提高效率.hibernate中的一级缓存也是为了提高操作数据库的效率.

提高效率手段1:提高查询效率

技术分享图片

 

提高效率手段2:减少不必要的修改语句发送

 技术分享图片

 

hibernate中的事务

事务并发问题   1.脏读 2.不可重复度 3.幻|虚读

事务的隔离级别 

读未提交- 123         读已提交 - 23       可重复读(mysql默认级别)-3          串行化 - 没有问题

 

知识点:如何在hibernate中指定数据库的隔离级别

技术分享图片

知识点2:在项目中如何管理事务

1.业务开始之前打开事务,业务执行之后提交事务. 执行过程中出现异常.回滚事务.

2.在dao层操作数据库需要用到session对象.在service控制事务也是使用session对象完成. 我们要确保dao层和service层使用的使用同一个session对象

3.在hibernate中,确保使用同一个session的问题,hibernate已经帮我们解决了. 我们开发人员只需要调用sf.getCurrentSession()方法即可获得与当前线程绑定的session对象

4.注意1: 调用getCurrentSession方法必须配合主配置中的一段配置

技术分享图片

注意2:通过getCurrentSession方法获得的session对象.当事务提交时,session会自动关闭.不要手动调用close关闭.

 

hibernate中的批量查询(概述)

HQL查询-hibernate Query Language(多表查询,但不复杂时使用)

Hibernate独家查询语言,属于面向对象的查询语言

基本查询

 技术分享图片

技术分享图片

条件查询    ?号占位符

 技术分享图片

命名占位符

技术分享图片

分页查询

 技术分享图片

Criteria查询(单表条件查询)

Hibernate自创的无语句面向对象查询

基本查询

技术分享图片

条件查询

技术分享图片

技术分享图片

分页 查询

 技术分享图片

设置查询总记录数

 技术分享图片

原生SQL查询(复杂的业务查询)

基本查询

返回数组List

 技术分享图片

返回对象List

技术分享图片

条件查询

 技术分享图片

分页查询

 技术分享图片

 

Hibernate框架学习2

标签:uuid   修改   img   rac   创建   query   current   oracl   lan   

原文地址:https://www.cnblogs.com/escapist/p/9057482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!