hibernate总结四】的更多相关文章

hibernate的四种状态 1.临时状态 与数据库中没有相对应的数据,也不在session的管理之中,一般是新new出来的对象 2.持久化状态 对象在session的管理中,最后会在事务提交后,在数据库中有相对应的记录 该状态有两个特点①有OID      ②对对象的修改会同步到数据库中 3.游离状态 数据库中有相对应的记录,该对象不再session的管理中,修改此对象时,该数据库不会有变化 4.删除状态 执行了delete()方法的对象,最后被回收…
hibernate第四天     一.JPA相关概念         1.1JPA概述             全称是:Java Persistence API.是sun公司推出的一套基于ORM的规范.hibernate框架中提供了JPA的实现.             JPA痛JDK5.0注解或xml描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 1.2JPA的优势             标准化:                 JPA是JCP组织发布的javaee标准之…
一.关系映射简介 在数据库中,表与表的关系,仅有外键.但使用hibernate后,为面向对象的编程,对象与对象的关系多样化:如 一对一,一对多,多对多,并具有单向和双向之分. 开始练习前,复制上一次项目,并更名为 二.一对一单向外键关联 例如:一个老师只教一个学生,一个学生只能被一个老师教 关系图如: 修改teahcer.java和student.java类(为了简单起见吧Student也更改为使用Annotation的形式) package com.model; import javax.pe…
一.ID生成策略配置 1.ID生成方式在xml中配置方式: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping p…
Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应.为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值.Hibernate通过标识符生成器来为OID赋值. 一.指定标识符生成器: 使用<id>元素的子元素<generator class="increment"/>来指定.Hibernate提供的内置标识符生成器: A.increment:适用于代理主键.由Hibernate自…
我们在搭建环境的时候,在配置文件中有一个属性标签为: <property name="hibernate.hbm2ddl.auto">     </property> 这个属性标签中有四个参数可以写,这四个参数是对数据库中插入的进行不同的操作,分别为: (1)create-drop (2)create (3)update (4)validate 下面分别来介绍他们的作用以及对数据库中的影响 (1)<property name="hibernate…
本文主要介绍: 1 悲观锁和乐观锁 2 使用版本号控制并发访问 3 flush方法和批量更新的问题 4 DetachedCriteria 5 N + 1 次查询 6 使用sql进行查询 7 注解方式 一.悲观锁和乐观锁 问题:有两个人,同时打开了一个贴子,进行编辑,结果会怎么样? 后提交的,有可能会把先提交的冲掉. 比如一个贴子,发表者是张三 第一个人,改成李四,第二个改成王五,后提交,结果最后是王五,李四没了 ==悲观锁: 操作员得到数据以后,别人就不能修改,直到他修改完成,事务提交后才能进行…
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.java package com.bie.po; /** * @author BieHongLi * @version 创建时间:2017年3月8日 下午5:17:23 * */ public class User { private int id; private String name; priva…
Hibernate入门最后一天第四天,我们进行查询方式的更进一步的细化: 先看一下大致的Hibernate的提供的查询的方式: 1.对象导航查询 2.OID查询 3.HQL查询 4.QBC查询 5.本地SQL查询 使用框架,我们更加关注的是前四种查询的方式. 接下来逐条介绍: 1.对象导航查询 例如昨天的客户联系人的一对多: 根据id查询到客户,再根据客户下的所有联系人 这个查询过程称为对象导航 就是得到表示的那个set就可以 Set<LinkMan> set = cust.getSet_Li…
一.什么是缓存 缓存是介于应用程序和永久必数据存储源之间,目的是为了降低应用程序直接读写永久必数据存储源的频率,从而提高运行性能 缓存通常是在内存中的如: Office中的Word.excel Hibernater中的Session以及SessionFactory 二.对旬在JVM中的生命周期 new 语句创建JAVA对象时,JVM会为当前对象分配一个内存 只要当前对象被其它资源引用,就会一直存在内存中 如果当前对象不被其它资源引用,就结结束生命周期 一个对象被其它生命周期未结束的对象引用,则这…