1.Hibernate的配置文件

Hibernate.cfg.xml

Dept.hbm.xml

2.CRUD的方法名称和参数类型

Save(Object obj)

Delete(Object obj)

Update(Object obj)

Get(Class clazz,Serializable ser)

Load(Class clazz,Serializable ser)

3.提取工具类

HibernateUtil{

Factory

session

Public static Session getSession(){

Cfg=new Configuration().configure();

factory= cfg.buildSessionFactory();

Session session=factory.openSession();

Return session;

}

}

4.@Before和@After

注解

5.ORM (Object Relational Mapping)对象关系映射

对象:Java中的业务视图

关系:底层二维表

映射:小配置

6.主键生成策略

Uuid: 32位的16进制数

1) sequence

编号列生成由底层数据库提供序列,来完成主键自增,要求数据库必须支持序列 mysql不支持,oracle支持

create sequence myseq; 创建序列

insert into customer values (myseq.nextval); 插入数据时调用序列,序列+1

2) native

采用数据库支持自增策略, mysql就用identity 、oracle就用sequence

策略1) ---> 策略4) 要求数据库主键必须为数字 ,因为只有数字才能自增

3) uuid

32位 唯一字符串, 主键使用varchar 类型

真实开发中,用程序提供uuid值

4) assigned

手动指定主键的值,该主键一般有实际意义,例如订单单号(20160114-A002)

--------------------------------------------------

7.Get()和load()的区别

Load()没有使用对象的其他属性的时候,没有SQL  延迟加载

Get() :没有使用对象的其他属性的时候,也生成了SQL  立即加载

①:如果数据库中,没有 OID 指定的对象。通过 get方法加载,则返回的是一个null;通过load加载,则返回一个代理对象,

如果后面代码如果调用对象的某个属性会抛出异常:org.hibernate.ObjectNotFoundException;

  ②:load 支持延迟加载,get 不支持延迟加载。

是什么导致了延迟加载?

解析:是因为内存中构建了代理对象。

stu.getClass()

Handler:处理人

延迟加载原因:代理对象

一级缓存

8.脏检查

脏检查:当事务提交时,Hiberante会对Session中持久状态的对象进行检测,判断对象的数据是否发生了改变

依据:

为什么要进行脏检查?

解析:如果对象发生了改变,就需要将改变更新到数据库中,以确保内存中的对象与数据库中的数据保持一致。

如何脏检查?

  解析:当一个Dept对象被加入到Session缓存(有人又称为 一级缓存  后者是内部缓存)中时,Session会为Dept对象的值类型的属性复制一份快照。

当Session刷新缓存时,会先进行脏检查,即比较Dept对象的当前属性与它的快照,来判断Dept对象的属性是否发生了变化。

如果发生了变化,Session会根据脏对象的最新属性值来执行相关的SQL语句,将变化更新到数据库中。

Session具有一个缓存,可以管理和跟踪所有持久化对象,对象和数据库中的相关记录对应。

快照:

9.session(线程非安全)  SessionFactory(线程安全)

PDF:

Session是线程非安全的

线程安全:多个线程访问同一个资源的时候,

线程非安全:

10.Session:

可以简单理解成相当于一个Connection

Session是持久化对象的容器

一级缓存(session)

如果两次get()同一个OID,那么第二次不再SQL,说明了一级缓存的

存在性。一级缓存事务级别的事务

Load()和get()都可以给缓存放入数据,和取出数据

转载于:https://www.cnblogs.com/yangronglin/p/5818250.html

hibernate 数据处理相关推荐

  1. SimplifiedHibernate:简化了的Hibernate

    我的目的是实现下Hibernate中增删改查.缓存的核心功能.虽然基本功能实现了,但可能还有好多Bug,欢迎点评拍砖,没准能在一片谩骂声中取得意想不到的进步,:) // DatabaseAccess. ...

  2. java ssh框架 struts spring hibernate 简介

    目录 什么是SSH框架 浅谈Struts 什么是Struts Struts的核心构成 为什么使用Struts 浅谈Hibernate 什么是Hibernate Hibernate的核心构成 浅谈Spr ...

  3. hibernate 基础学习

    2019独角兽企业重金招聘Python工程师标准>>> Hibernate 一.是什么: Hibernate是轻量级的ORM框架. 1.ORM(ORMapping) Object R ...

  4. 关于struts,spring,hibernate的几个问题

    Struts2: 1.为什么每次请求都要创建一个Action对象? re: 为了防止线程迸发,如果每次都使用同一个Action进行数据修改和传递的话,容易引起线程迸发,使线程不安全. 2.ModelD ...

  5. hibernate执行sql的顺序问题

    最近做的项目有一个很麻烦的业务,一个操作里包含了insert,update,delete,select动作. 一开始起在一个hibernate事务里,发现在入库的时候有的时候数据对不上,后来查了下资料 ...

  6. (13) 悲观锁和乐观锁解决hibernate并发(转)

    前言:  做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统.假设 id=1 的这本书库存为 1 ,但是有 2 个人同时来借这本书,此处的逻辑为 Select ...

  7. Hibernate面试题分析

    Hibernate面试题分析 1. Hibernate 的检索方式有哪些 ? ① 导航对象图检索  ② OID检索  ③ HQL检索  ④ QBC检索  ⑤ 本地SQL检索 2. 在 Hibernat ...

  8. 整合Struts2、Spring、Hibernate构建J2EE应用

    [论文摘要] J2EE即是以Java 2平台为基础的体系结构,又是一组旨在简化企业解决方案的开发.部署.运行.维护等相关复杂问题的技术规范与指南.Struts2.Spring.Hibernate是当今 ...

  9. Hibernate 事物隔离级别 深入探究

    目录 一.数据库事务的定义 二.数据库事务并发可能带来的问题 三.数据库事务隔离级别 四.使用Hibernate设置数据库隔离级别 五.使用悲观锁解决事务并发问题 六.使用乐观锁解决事务并发问题 Hi ...

最新文章

  1. IntelliJ IDEA 中的 project 和 module 与Eclipse中workspace和project的关系
  2. 【毕业求职季】-听说你想去大厂看学妹,带你看看阿里后端实习面经长啥样?
  3. 阿里智能运维算法大赛,邀你挑战大规模硬盘故障预测!
  4. oracle视图执行脚本,oracle 视图,函数,过程,触发器自动编译脚本
  5. 人是需要一个圈子互相激励的
  6. JavaMail概述
  7. 福州黑白风格的婚纱照拍摄介绍
  8. Android 利用MediaPlayer实现音乐播放
  9. 前端经典项目案例练习-----小伙伴们都惊呆了
  10. JDOM/XPath解析XML简单示例
  11. 狡猾的老鼠-循环C语言,狡猾的老鼠
  12. ExtJS快速入门指南
  13. QT播放视频QMediaPlayer
  14. Flink Sql (一)
  15. Java基础练习题 已知长方体的长、宽、高分别是a、b、c,求其表面积和体积。
  16. iOS模拟器中图片在mac电脑中的实际位置
  17. 2014新生暑假个人排位赛01 B. 学姐去学车
  18. 彻底关闭苹果系统更新_如何彻底关闭手机系统的更新提醒,苹果和安卓用户注意了...
  19. JS判断一个空间点在陆地还是海洋
  20. C/C++中的system函数所有用法!

热门文章

  1. java扫雷具有win7_Win7系统自带扫雷游戏打不开的解决方法
  2. 友盟分享小程序_iOS分享微信小程序
  3. 从中序与后序遍历序列构造二叉树Python解法
  4. 中班游戏电子计算机,幼儿园中班数学游戏:小小快递员
  5. 下拉框输入模糊查询_RazorSQL for Mac(数据库工具查询)
  6. 微信小程序判断服务器返回值,让微信小程序内置函数返回promise的方法
  7. 服务器系统怎么分配,服务器系统盘分配多大内存
  8. 工业机器人焊钳制作_一种工业焊接机器人及其冷却装置的制作方法
  9. 钉钉产品介绍_钉钉上线安全教育新功能家校联动护航学生暑期安全
  10. opencv图像拼接_使用OpenCV进行图像全景拼接