Hibernate学习笔记
文章平均质量分 85
qian_348840260
这个作者很懒,什么都没留下…
展开
-
5. Hibernate的简易CURD操作
HibernateUtils类:负责封装SessionFactory的创建、session 创建和销毁 package com.bjsxt.hibernate; import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;原创 2010-03-02 14:36:00 · 913 阅读 · 1 评论 -
15. component映射
componenet映射: *在hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid,component通常被称为是值对象(DDD) *采用component映射的好处:它实现了对象模型的细粒度划分,层次会更分明,复用率会更高1.定义Contact类package com.bjsxt.hibernate;原创 2010-03-05 10:51:00 · 441 阅读 · 0 评论 -
16. 复合主键映射
通常将复合主键相关的属性,单独放到一个类中 * 此类必须实现序列化接口 * 覆写hashcode和equals方法1.定义FiscalYearPeriodPK类package com.bjsxt.hibernate; import java.io.Serializable; public class FiscalYearPeriodPK im原创 2010-03-05 11:13:00 · 512 阅读 · 0 评论 -
18. 悲观锁和乐观锁
悲观锁和乐观锁主要用于解决线程并发问题。悲观锁 *悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改 *session.load(User.class,1,LockMode.UPGRADE);//类似于发出select ...........for update乐观锁 *可以同时去读数据,但是在提交时会检原创 2010-03-05 14:10:00 · 468 阅读 · 0 评论 -
20. 二级缓存(SessionFactory级缓存)
hibernate二级缓存的重要知识点 二级缓存也称进程级的缓存或SessionFactory级的缓存,二级缓存可以被所有的session共享二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存 hibernate提供了基于Hashtable的二级缓存实现,但建议只用于开发阶段,生产环境中应使用第三方提供的缓存产品原创 2010-03-05 16:31:00 · 1051 阅读 · 0 评论 -
21. 查询缓存
查询缓存的重要知识点: 查询缓存是针对普通属性结果集的缓存对实体对象的结果集只缓存id 查询缓存的生命周期,当前关联的表发生修改,那么查询缓存生命周期结束 查询缓存的配置和使用: * 在hibernate.cfg.xml文件中启用查询缓存(默认是关闭的),如: true * 在程序中必须手动启用查询缓存,如:原创 2010-03-05 17:21:00 · 482 阅读 · 0 评论 -
12. 多对多关联映射
多对多关联映射_单向实例背景:1. 定义Role类package com.bjsxt.hibernate; public class Role { private int id; private String name; public int getId() {原创 2010-03-04 17:07:00 · 455 阅读 · 0 评论 -
19. 一级缓存(session级缓存)
hibernate一级缓存,又称为sesssion级缓存 一级缓存生命周期很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存。主要用来缓存实体对象的,而不会对实体对象的普通属性进行缓存 支持一级缓存的方法: * get() * load() * iterate(查询实体对象)原创 2010-03-05 15:14:00 · 558 阅读 · 0 评论 -
17. Collection映射
本节将介绍set、list、array、map映射。(存储原始对象而不是实体类)1.定义CollectionMapping类package com.bjsxt.hibernate; import java.util.List;import java.util.Map;import java.util.Set; public class CollectionMappi原创 2010-03-05 13:11:00 · 462 阅读 · 0 评论 -
22. 抓取策略
Hibernate常用的四种抓取策略(fetching strategies): *查询抓取(select fetching) *连接抓取(join fetching) *子查询抓取(subselect fetching) *批量抓取(batch fetching)查询抓取: 例:,一般为默认选项,采用延时加载原创 2010-03-05 23:51:00 · 574 阅读 · 0 评论 -
14. 继承关系映射
继承关系映射有三种实现方式: *每棵继承树映射成一张表 *每个子类映射成一张表 *每个类映射成一张表每棵继承树映射成一张表实例背景:基本原理: 1、理解如何映射 因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。这种机制就是,在表中添加一个字段原创 2010-03-05 09:58:00 · 500 阅读 · 0 评论 -
13. Hibernate lazy策略
Hibernate lazy策略可以使用在(hibernate3.0默认为true): * 标签上,可以取值:true/false 只会影响到类的普通属性,即使设置为false,类中的集合属性默认情况下仍然采用延时加载 * 标签上,可以取值:true/false 需要类增强工具,通过改变字节码来实现,属性的原创 2010-03-04 21:17:00 · 386 阅读 · 0 评论 -
7. 多对一关联映射
关联映射的本质: * 将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用实例背景:1. 定义Group类package com.bjsxt.hibernate; public class Group { private int id; private String name;原创 2010-03-03 10:07:00 · 502 阅读 · 0 评论 -
11. 一对多关联映射
一对多关联映射_单向一对多关联映射利用了多对一关联映射原理 *多对一关联映射: 在多的一端加入一个外键指向一的一端,它维护的关系是多指向一 *一对多关联映射: 在多的一端加入一个外键指向一的一端,它维护的关系是一指向多 也就是说一对多和多对一的映射策略是一样的,只是站原创 2010-03-04 16:01:00 · 594 阅读 · 0 评论 -
4. Hibernate持久对象的生命周期
transient状态的特征? * 在数据库中没有与之匹配的数据 * 没有纳入session的管理 persistent状态的特征? * persistent状态的对象在数据库中有与之匹配的数据 * 纳入了session的管理 * 在清理缓存(脏数据检查)的时候,会和数据库同步 detached状态的特征? * 在数据库中有与之匹配的数据 * 没有纳入session原创 2010-03-01 14:18:00 · 525 阅读 · 0 评论 -
6.HQL入门
在hql中关键字不区分大小写,但是属性和类名区分大小写 1、简单属性查询【重要】 * 单一属性查询,返回结果集属性列表,元素类型和实体类中相应的属性类型一致 List students = session.createQuery("select name from Student").list(); for (Ite原创 2010-03-02 16:10:00 · 850 阅读 · 0 评论 -
8. 一对一主键关联映射
一对一主键关联映射_单向: * 让两个实体对象的id保持相同,这样可以避免多余的字段被创建实例背景:1. 定义IdCard类package com.bjsxt.hibernate;public class IdCard { private int id; private String cardNo;原创 2010-03-03 16:36:00 · 501 阅读 · 0 评论 -
9. 一对一唯一外键关联映射
一对一唯一外键关联映射_单向 *一对一唯一外键关联映射是多对一关联映射的特例 *可以采用标签,指定多的一端的unique=true,这样就限制了多的一端的多重性为一实例背景:1. 定义IdCard类package com.bjsxt.hibernate;public class IdCard { private原创 2010-03-04 09:22:00 · 532 阅读 · 0 评论 -
10. Session flush操作
三个重要存储位置: *session ActionQueue insert/update/delete 主要存放session操作(save、update、delete)之后,但尚未发出sql语句的对象的相关信息,简称 临时队列,调用session.flush()操作,会清空队列里的信息,发出sql语句,并改变缓存对象的 existsInDatabase属性值原创 2010-03-04 12:35:00 · 740 阅读 · 0 评论 -
3. Hibernate核心接口
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。 ·Session接口:Session接口负责执行被持久化对象的CRUD操作(CRU原创 2010-03-01 14:10:00 · 531 阅读 · 0 评论 -
1. Hibernate简述
Hibernate的优点: 1. 开发效率提高 2. 更加面向对象 3. 透明持久化 4. 可移植性适用性: 1.使用数据库的特定功能时,不适用使用Hibernate 2.批量操作数据时,不适合使用Hibernate(缓存中的数据可能会与数据库中的数据不一致) 3.对象之间的关系错踪复杂时,不适合使用Hibernate原创 2010-03-01 09:49:00 · 503 阅读 · 0 评论 -
2. 第一个hibernate项目
第一个hibernate项目 1、新建java项目 2、创建User Library,加入如下jar * HIBERNATE_HOME/hibernate3.jar * HIBERNATE_HOME/lib/*.jar * MySql jdbc驱动 3、创建h原创 2010-03-01 09:52:00 · 578 阅读 · 0 评论