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()都可以给缓存放入数据,和取出数据

hibernate 数据处理的更多相关文章

  1. 深入浅出Struts2+Spring+Hibernate框架

    一.深入浅出Struts2 什么是Struts2? struts2是一种基于MVC的轻量级的WEB应用框架.有了这个框架我们就可以在这个框架的基础上做起,这样就大大的提高了我们的开发效率和质量,为公司 ...

  2. Hibernate(开放源代码的对象关系映射框架)

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...

  3. Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb  oql规范attilax总结

    Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb  oql规范attilax总结 Javaee6 与net 异常规范1 Jpa规范 JPA全称Java Persistence A ...

  4. 备忘:hibernate, logback, slf4j实际应用一例

    用hibernate写一些简单的数据库的Java应用.主要是温习一下.之前弄过的一些都忘了.发现还是得记下来,不然很快就忘. 1. Eclipse版本,用Juno, J2EE版本.最好下载zip版本的 ...

  5. Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解

    在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...

  6. Hibernate批处理操作优化 (批量插入、更新与删除)

    问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低. 工 ...

  7. [转]Hibernate重要规则总结

    实体类的编写规则 l        实体类必须具备无参构造方法 l        实体类必须具备数据库标识 l        通常选用无业务意义的逻辑主键作为数据库标识,通常是int/long/Str ...

  8. 02.Hibernate映射基础

    前言:Hibernate的核心功能是根据数据库到实体类的映射,自动从数据库绑定数据到实体类.使我们操作实体类(Java对象)就能对数据库进行增.删.查.改,而不用调用JDBC API使数据操作变得简单 ...

  9. MyBatis学习总结_18_MyBatis与Hibernate区别

    也用了这么久的Hibernate和MyBatis了,一直打算做一个总结,就他们之间的优缺点说说我自己的理解: 首先,Hibernate是一个ORM的持久层框架,它使用对象和我们的数据库建立关系,在Hi ...

随机推荐

  1. C++_系列自学课程_第_7_课_数组_《C++ Primer 第四版》

    说到数组,大家应该都很熟悉,在C.Pascal.Java等语言中,都有数组的概念.在C++中也提供了对数组的支持.数组简单来说就是一堆相同 数据类型对象的集合. 这里要把握住两个要点: 相同的数据类型 ...

  2. php实现设计模式之 迭代器模式

    <?php /*迭代器模式: 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示.(行为模式) * 1.迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的 ...

  3. [翻译]Apache Spark入门简介

    原文地址:http://blog.jobbole.com/?p=89446 我是在2013年底第一次听说Spark,当时我对Scala很感兴趣,而Spark就是使用Scala编写的.一段时间之后,我做 ...

  4. 接入统计Crash的工具Crashlytics-ios

    1. 注册账户 登录网站 https://get.fabric.io/ 来注册新的账户 2. account confirmed之后就出现相应的设置页面,设置你的team的名称 3. 出现页面提示下载 ...

  5. JS+HTML5的Canvas画图模拟太阳系运转

    查看效果:http://hovertree.com/texiao/html5/9.htm 地球自传 http://hovertree.com/texiao/html5/8.htm 代码如下: < ...

  6. 盘点国内11家已经获得融资的移动CRM平台

    盘点国内11家已经获得融资的移动CRM平台 亿欧网盘点了目前国内已经获得融资的11家移动CRM平台,它们分别是:纷享销客.红圈营销.小满科技.腾腾科技.麦客.美洽.销售易.快消总管.EC营客通.店小三 ...

  7. Microsoft Dynamics AX 7 新特性探索 - Demo 部署(Part 1)

    Dynamics AX 7已经发布了一段时间了,我们知道这次微软为我们带来了许多令人激动的新特性.在这个系列里,Reinhard将揭开New Dynamics AX的神秘面纱,和大家一起探索这些新的特 ...

  8. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q144-Q146)

    Question 144You are developing a Feature that will be used in multiple languages.You need to ensure ...

  9. iOS-钥匙串中证书全部失效(证书的签发者无效)的解决办法

    今天用Xcode打包IPA文件给同事,结果提示import时,提示证书missing,找了半天没发现问题,后来打开钥匙串,发现证书全失效了!!!根证书失效了!吓死宝宝了 解决方法 首选此方法: 1.打 ...

  10. 【代码笔记】iOS-向服务器传JSON数据的两种方式

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...