hibernate 数据处理

1.session到底如何进行脏检查?

当一个Dept对象加入到Session缓存中时,  Session会为Dept对象的值类型的属性复制一份快照,当Session刷新缓存时,会进行脏检查,即比较Dept对象的当前属性和他的快照,来判断Dept对象的属性是否发生了变化,

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

2.OID

用来持久化数据的唯一标识,在小配置里边的id标签中存在.

2.主键生成策略.

Uuid:32位的16进制数.

3.PO VO DTO

PO=javabean

pojo =javabean +小配置

4.get和load()的区别?

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

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

是什么导致了延迟加载?

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

Handler:处理人

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

PDF

Session是线程非安全的

主要是Sessionfactory 是借口,里边的方法全部用final修饰.

6.java对象的三种状态

持久态

Student stu =new Student():

session.save(stu);

session中有,DB中也有

瞬时态

Student stu =new Student();

体现在DB和session中都没有

游离态

stu.setId(18);

session中有,DB中没有

session.close();

DB中有,session中没有

7.Session

可以简单的理解成一个Connection

Session是持久化对象的容器

如果两个get()同一个oid,那么  第二次不在sql,说明了一级缓存的存在性.

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

时间: 2024-10-02 03:08:33

hibernate 数据处理的相关文章

Hibernate之单表类型数据处理泛型类

package chengfei.hibernate.Dao; import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.Transaction;import chengfei.hibernate.tool.HibernateUtils; /**hibernate数据库操作泛型类 * @author Administrator *

深入浅出Struts2+Spring+Hibernate框架

一.深入浅出Struts2 什么是Struts2? struts2是一种基于MVC的轻量级的WEB应用框架.有了这个框架我们就可以在这个框架的基础上做起,这样就大大的提高了我们的开发效率和质量,为公司节省了不少的人力成本. 为什么使用Struts2? struts2实现了视图与业务应用逻辑的解耦(软件工程的高内聚,低耦合原则). 在Model 1时代,开发web项目我们都是在JSP里写入处理业务逻辑的JAVA代码,尤其像涉及到数据库和页面form表单数据之间交互的时候,每次都要写连接.查询.增加

Hibernate的优缺点

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. 优点: a. Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性. b.H

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

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久

Hibernate事务

Hibernate事务控制    在实际生产中,每个业务逻辑都是由一系列对数据库访问完成的,这一系列的数据访问可能包括删除一些数据,然后再插入一些数据,这里的删除和插入的动作不可分割,要么全部执行,要么都不执行,这就需要事务. 事务具备4个特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability)        从编程角度来看,Hibernate事务是由Session对象开启的:但是从底层的实现来看,Hibernate事务由

Hibernate入门(一)

一 Hibernate介绍 Hibernate 是一个开源.轻量级的ORM(对象关系映射)工具,该工具简化了数据创建.数据处理和数据访问,它是一种将对象映射到数据库中表的编程技术.ORM工具内部使用JDBC API与数据库进行交互. Hibernate 的优点有:开源.轻量级.快速性能.数据库独立查询.自动创建表.简化复杂查询.提供查询统计和数据库状态. 二 入门程序 准备JAR包 hibernate包和mysql驱动连接包: 创建项目,导入JAR包 3.在src路径下新建hibernate.c

Hibernate学习---第十二节:Hibernate之锁机制&乐观锁实现

1.悲观锁 它指的是对数据被外界修改保持保守态度,因些,在整个数据处理过程中,将数据牌锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层的锁机制才能保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据). 一个典型的悲观锁调用示例: select * from account where name = "12345" for update 通过for update子句,这条SQL锁定了account表中所有符合检索条件的记录.本次事务

02.Hibernate映射基础

前言:Hibernate的核心功能是根据数据库到实体类的映射,自动从数据库绑定数据到实体类.使我们操作实体类(Java对象)就能对数据库进行增.删.查.改,而不用调用JDBC API使数据操作变得简单而不繁琐.本文就主要讲解Hibernate的映射文件的映射机制,但本文讲解的重点在于通过Hibernate如何配置实体类到数据库表的映射,至于数据库表(或实体类)之间的各种关联关系的映射会在后面的文章中讲到. 1.映射配置文件基础(XXX.hbm.xml) 说明:本节只是对Hibernate的映射文

MyBatis学习总结_18_MyBatis与Hibernate区别

也用了这么久的Hibernate和MyBatis了,一直打算做一个总结,就他们之间的优缺点说说我自己的理解: 首先,Hibernate是一个ORM的持久层框架,它使用对象和我们的数据库建立关系,在Hibernate中,操作数据库实际上时通过对象状态的改变来改变数据中对应表的值,此时就是通过hql来操作数据库的,就不在通过sql来直接操作我们的数据库. 我认为,最能体现Hibernate的面向对象的方法来操作数据库的一点,就是:在新创建一个对象后,在调用Hibernate的save方法时,此时HI