
Hibernate
文章平均质量分 78
wzwjr
暂时休整中
展开
-
Hibernate中get和load方法的区别以及close(),clear()、evict()等的区别
get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是直接从数据库中检索 而load方法的执转载 2009-03-18 09:32:00 · 1423 阅读 · 0 评论 -
Hibernate笔记之6数据关联多对一
Hibernate数据关联是在Hibernate容器映射技术之上发展起来的。Hibernate数据关联分为如下三种: 一对一(1:1)一个人拥有唯一身份证号 一对多(1:N)一个部门有很多员工 多对多(M:N)一个学生可以选很多课程,一门课程也可以有多个学生一对一关联又包括如下两种类型: 1.主键关联 即两张关联表通过主键形成一对一映射关系 2.唯一外键关联唯一外键关联其实就是多对一,原创 2009-04-08 16:52:00 · 777 阅读 · 0 评论 -
Hibernate笔记之6数据关联多对多
多对多关系呢 在开发中尽量少使用,因为多对多性能很低。要创建一个多对多关系,在两个多对多关系表之间必须创建一个关联表。例如:Student(学生)和Course(课程)的关系就是多对多关系。在映射多对多关系时需要另外使用一个连接表(如Student_Course)。Student_Course表包含二个字段:courseID和studentID。此处它们的映射文件中使用标记,在Studen原创 2009-04-08 16:51:00 · 737 阅读 · 0 评论 -
Hibernate笔记之3复合主键
要实现复合主键必须满足如下要求:1.类必须实现Serializable接口2.复写equals和hashCode方法public boolean equals(Object obj){ if(this==obj) { return true; } if(!obj.instanceOf(Person)) { return false; } return super.equals(原创 2009-04-08 16:49:00 · 757 阅读 · 0 评论 -
Hibernate提供的几种内置标识符生成器
Hibernate提供的几种内置标识符生成器标识符生成器简 介increment适用于代理主键。由Hibernate以自增的方式生成,增量为1identity适用于代理主键。由底层数据库生成,前提是底层数据库支持自增字段类型续表标识符生成器原创 2009-04-08 16:46:00 · 793 阅读 · 0 评论 -
Hibernate笔记之6数据关联一对多
Hibernate数据关联是在Hibernate容器映射技术之上发展起来的。Hibernate数据关联分为如下三种: 一对一(1:1)一个人拥有唯一身份证号 一对多(1:N)一个部门有很多员工 多对多(M:N)一个学生可以选很多课程,一门课程也可以有多个学生一对多关系很常见,例如班级与学生的关系就是典型的一对多的关系。在实际编写程序时,一对多关系有两种实现方式:单向关联和双向关联。单向的一对多关系原创 2009-04-08 16:52:00 · 783 阅读 · 0 评论 -
Hibernate笔记之5容器映射之List映射
容器映射: 容器常用于存储对象,将容器的关系映射到表主要有Set,List和Map三种。例二,List映射:某个人有多本书,但是也可能有基本是相同的书:首先创建数据库:-- 删除表drop table person ;drop table books ;-- 创建表CREATE TABLE person( id INT AUTO_INCREMENT PRIMARY KEY NOT N原创 2009-04-08 16:49:00 · 773 阅读 · 0 评论 -
Hibernate笔记之2实体映射细粒度划分
例如:一个大型的配送单包含如下信息:-订购客户姓名-所订购的货物品名,数量等-配送单编号,配送地址,时间等。但是这种设计方案并不可取,可将此方案划分为如下3个对象: Invoice 配送单 Item 订购项目 Person 客户这就是细粒度划分。 很明显,通过合理的细粒度划分,体现出了更清晰合理的设计逻辑。对于表的对象细分,在Hibernate中可借助Compo原创 2009-04-08 16:48:00 · 811 阅读 · 0 评论 -
Hibernate笔记之5容器映射之Set映射
容器映射: 容器常用于存储对象,将容器的关系映射到表主要有Set,List和Map三种。例一,Set映射:每个人有很多email地址,但是每个地址是不能重复的,所以选用Set映射:先建数据库:-- 删除表drop table person ;drop table emails ;-- 创建表CREATE TABLE person( id INT AUTO_INCREMENT PRIM原创 2009-04-08 16:50:00 · 890 阅读 · 0 评论 -
Hibernate笔记之4实体层设计
Hibernate继承关系有如下3映射类型对应:1.table per concrete class 也就是表与子类之间独立的一对一关系。即每个子类对应一张表。2.table per subclass 每个子类对应一张子表,并与主类共享主表3. table per class hierarchy 表与类的一对多关系第二种映射策略举例:先看数据库文件:-- 删除表DROP TABLE T原创 2009-04-08 16:49:00 · 885 阅读 · 0 评论 -
Hibernate笔记之1第一课
首先建立数据库:drop table person;create table person( id varchar(10) not null primary key, name varchar(20) not null, password varchar(10), sex varchar(2), email varchar(30));commit;package wjr.hibernate.d原创 2009-04-08 16:47:00 · 1023 阅读 · 1 评论 -
Hibernate中 一 二级缓存及查询缓存的学习总结 转帖
最近趁有空学习了一下Hibernate的缓存,其包括一级缓存,二级缓存和查询缓存(有些是参照网络资源的):一、一级缓存 一级缓存的生命周期和session的生命周期一致,当前sessioin一旦关闭,一级缓存就消失,因此一级缓存也叫session级的缓存或事务级缓存,一级缓存只存实体对象的 ,它不会缓存一般的对象属性(查询缓存可以),即当获得对象后,就将该对象的缓存起来,如果在同一sessi转载 2009-03-23 22:51:00 · 2231 阅读 · 5 评论 -
Hibernate实体对象生命周期内的三种状态
刚开始接触Hibernate的时候,只是简单的把它当做一个API工具,直到后来看到有关VO和PO的内容时,才意识到Hibernate不仅仅是一个O/R Mapping的API工具,它还是一个容器。它可以帮你管理实体对象的生命周期。 实体对象的生命周期有三种状态: 1.Transient(自由状态) 此时的实体对象和数据库中的记录无关联,只是一个普通的Jav原创 2009-03-18 17:09:00 · 3064 阅读 · 1 评论 -
hibernate 延迟加载问题探讨
就此说一下关于lazy机制:延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才初始化它,就会产生延迟初始化错误。下面把Customer.hbm.xml文件的元素的lazy属性设为true,表示使用延迟检索策略:当执行Ses转载 2009-03-18 11:11:00 · 623 阅读 · 0 评论 -
Hibernate中lazy的设置
1.lazy是什么 Hibernate中的lazy(默认true)网上很多人都把它叫懒人机制,主要是告诉Hibernate获取数据时在什么时候去读库;2.lazy的影响 就我做的例子看来。lazy只对session.Load和获取级联信息(1对1,1对多,多对多)时起作用;3.Session读取信息的方式(Load和级联信息) 3.1延迟加载(lazy=true)转载 2009-03-18 10:08:00 · 788 阅读 · 0 评论 -
Hibernate笔记之6数据关联一对一
Hibernate数据关联是在Hibernate容器映射技术之上发展起来的。Hibernate数据关联分为如下三种: 一对一(1:1)一个人拥有唯一身份证号 一对多(1:N)一个部门有很多员工 多对多(M:N)一个学生可以选很多课程,一门课程也可以有多个学生一对一关联又包括如下两种类型: 1.主键关联(one-to-one) 即两张关联表通过主键形成一对一映射关系 2.唯一外键关联(也就是原创 2009-04-08 16:53:00 · 746 阅读 · 0 评论