
Hibernate
SiC 软件
SiC B2B2C Shop 开源商城 作者
展开
-
1 Hibernate 第一例
一个简单的CURD的例子. 源码中不包含所依赖的库, 要不然打的包太大了. Hibernate 版本3.2 PO对象注意:1 要有默认的构造方法2 类是非final 修饰的.否则 懒加载无用. UserDAOImpl类的代码, 其它配置文件,请看附件中的源码包 package dao;import java.util.Date;import o原创 2014-10-09 10:27:51 · 488 阅读 · 0 评论 -
20 Hibernate 1+N问题的原理与解决
什么时候会遇到1+N的问题?前提:Hibernate默认表与表的关联方法是fetch="select",不是fetch="join",这都是为了懒加载而准备的。 1)一对多() ,在1的这方,通过1条sql查找得到了1个对象,由于关联的存在 ,那么又需要将这个对象关联的集合取出,所以合集数量是n还要发出n条sql,于是本来的1条sql查询变成了1 +n条 。 2)多对一 ,在原创 2014-10-09 10:30:08 · 440 阅读 · 0 评论 -
Hibernate分页查询与泛型
JE有两篇文章,关于分页查询 与泛型 的,写的很好.这里收藏一下. Hibernate分页查询小结 JDK5.0后的泛型程序设计 ---------------------------------------------下面是我自己写的分页方法,同时也参考了上面两篇文章. 以下代码用在了实际的项目中. Page类,计算分页数据package comm原创 2014-10-09 10:33:09 · 591 阅读 · 0 评论 -
Hibernate批量操作(JDBC批量操作)
部分内容转自 :http://gaolixu.iteye.com/blog/519086部分内容转自 :http://superjavason.iteye.com/blog/255423 -------------------------------------------------------------------------------------------- hib原创 2014-10-09 10:33:52 · 715 阅读 · 0 评论 -
Hibernate二级缓存 ---- 最佳实践
作者:赵磊博客:http://elf8848.iteye.com 2010年11月7号,立冬,星期天。北京外面风好大,躲在家里整理一下这篇文章,发出来与大家分享,对大家有帮助是我最高兴的事儿。 不要想当然的认为使用了Hibernate的二级缓存就一定能够提高应用程序的性能,仅仅在你能够驾驭它,并且条件适合的情况下才是这样的。 使用hibernate的二原创 2014-10-09 10:42:35 · 455 阅读 · 0 评论 -
Hibernate懒加载深入分析
[size=small]----------------------------------------------------------懒加载可以提高性能吗?不可以简单的说"能",因为Hibernate的关系映射拖累了SQL的性能,所以想出懒加载来弥补.只是弥补而以,不会超越.所以大家不要想着使用了懒加载总体性能就提高了,其实总体性能不下降就万幸了.------------------原创 2014-10-09 10:40:47 · 458 阅读 · 0 评论 -
Hibernate悲观锁定与乐观锁定
悲观锁定 由数据库方面实现. 可见:Hibernate悲观锁定与乐观锁定区别 乐观锁 由Hibernate实现. 可参见下面两篇文章 Hibernate乐观锁实现之Version Hibernate乐观锁实现之Timestamp 大小: 44.原创 2014-10-09 10:40:52 · 614 阅读 · 0 评论 -
Hibernate ---- 控制日志
Hibernate版本 3.3或3.4Hibernate 使用Simple Logging Facade for Java (SLF4J)来记录日志。官方网址:http://www.slf4j.org/SLF4J是一套接口,不是实现。通过转换器可以使用Log4j,JDK Logging,Apache Commons-logging,slf4j-nop等日志工具。所以,要想的Hibe原创 2014-10-09 10:41:08 · 510 阅读 · 0 评论 -
Hibernate 操作Blob Clob
Photo.javaimport java.sql.Blob;import java.sql.Clob;import java.util.Date;/** * @author IBM 这是一个用于测试Hibernate大对象操作的PO * * 这是一个测试POJO, 属性有多种类型 */public class Photo { pri原创 2014-10-09 10:41:19 · 595 阅读 · 0 评论 -
Hibernate二级缓存 ---- 入门示例
一. 我们使用oscache来演示 , 引入oscache的jar包到工程中. 二. 把下载的Hibernate压缩包中的 hibernate-3.2\etc\oscache.properties放入classpath中. 用默认设置就行了. 三.修改hibernate.cfg.xml , 加入如下, 意思启用二级缓存, 指定使用OSCache这个实现. <原创 2014-10-09 10:41:30 · 472 阅读 · 0 评论 -
Hibernate--空位
原文章已合并整理到: http://elf8848.iteye.com/blog/805351原创 2014-10-09 10:41:35 · 443 阅读 · 0 评论 -
17 继承(四)每一个具体的类 映射到一张表
类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML如下: 映射到三张表 , 每一个具体的类 映射到一张表,继承映射要求父子类的主键不能重复t_person表:1 int id原创 2014-10-09 10:29:52 · 459 阅读 · 0 评论 -
16 继承(三)(把前面14,15讲的情况结合起来)
人类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML请看15讲. 映射到两个表: 人类(Person) 与 男人(Men)类映射到如下的t_person表中, 有以下5个字段: 1 int id //主键2 varchar name原创 2014-10-09 10:29:46 · 397 阅读 · 0 评论 -
15 继承(二)(每个子类扩展的属性单独保存在一张表中)
人类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML如下: 映射到三张表 , 每个子类扩展的属性单独保存在一张表中t_person2表:1 int id //主键2 varchar原创 2014-10-09 10:29:41 · 453 阅读 · 0 评论 -
3 Hibernate对象的三种状态
1、瞬时对象(Transient Objects): 使用new操作符初始化的对象不是立刻持久的。的状态是瞬时的,也就说没有和任何数据库表进行关联。只要应用不再引用这对象,他的状态将丢失,并且由垃圾回收机制回收。数据库中没有此对象,只是存在内存中。 2、持久对象(Persist Objects):持久对象是具有数据库标识的,也就是从数据库获取来的。他有持久化管理器Session原创 2014-10-09 10:28:01 · 379 阅读 · 0 评论 -
4 Hibernate HQL查询,分页查询
/** * HQL查询的一个例子 */ public static void hql() { Session s = null; try { s = HibernateUtil.getSeesion();原创 2014-10-09 10:28:42 · 1247 阅读 · 0 评论 -
6 用Properties补充hibernate.cfg.xml配置
在一些特殊情况下,我们可能会把数据库连接信息保存在config.properties 文件中, 例如做一个install.jsp 来修改config.properties文件 ,实现对数据库信息的在线配置.这时 数据库连接信息保存在hibernate.cfg.xml就不方便.所以要单独保存到properties文件 中. config.properties文件内容如下 :#数据库IPdbh原创 2014-10-09 10:28:53 · 555 阅读 · 0 评论 -
7 映射-- 多对一(员工对部门)
多对一的例子 , 多个员工 对 一个部门 (Hibernate3.2) package dao.po;/** * @author zl 员工类 */public class Employee{ private int id; // 员工的ID private String name; // 员工的名称 private Department depa原创 2014-10-09 10:28:58 · 736 阅读 · 0 评论 -
8 映射-- 一对多(部门对员工)
package dao.po;import java.util.Set;/** * 部门类 * * @author zl * */public class Department{ private int id; //部门的ID private String name; //部门的名称 private Set emps;原创 2014-10-09 10:29:03 · 1005 阅读 · 0 评论 -
9 映射-- 一对一(两种)(人与身份)
一对一 ,例如"人" 对 "身份证"的对应关系 第一种情况: IdCard类的ID 既是主键又是外键 关系请看下图, (图中的配置, 写反了 ,不要参考, 正确的配置请看下面的代码)Person类:package dao.po;/** * @author zl 人类 * */public class Person{ p原创 2014-10-09 10:29:09 · 455 阅读 · 0 评论 -
10 映射-- 多对多(老师与学生)
学生类:package dao.po;import java.util.Set;/** * @author zl 学生类 */public class Student{ private int id; private String name; private Set teachers;} 老师类:package原创 2014-10-09 10:29:14 · 538 阅读 · 0 评论 -
11 映射-- 组件映射(人类与姓名类)
User类: 注意他的name属性package dao.po;/** * User类 (组件映射一例) * * user表要保存 User类 与 Name类 的信息 * * Name类, 他不会单独保存再一张表中,没有Name.hbm.xml */public class User{ private int id; private原创 2014-10-09 10:29:19 · 465 阅读 · 0 评论 -
13 级联和关系维护(Cascade 和Inverse)
Cascade用来说明当对主对象进行某操作时, 是否对其关联的从对象也作类似的操作. 例如:删除主对象的同时 要不要删除从对象, 主对象不存在了,从对象理理论上出应删除.常用的Cascade: none , all, save-update , delete , lock , refresh , evict , replicate , persist, merge, d原创 2014-10-09 10:29:30 · 550 阅读 · 0 评论 -
14 继承(一)(整个继承树映射到一张表)
人类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML如下: 映射到如下的t_person表中, 有以下6个字段:1 int id //主键2 varchar name //父类中的姓名原创 2014-10-09 10:29:35 · 546 阅读 · 0 评论 -
Hibernate--泛型DAO
泛型DAO(翻译)http://www.iteye.com/topic/151090 泛型Dao--以上面代码的分析http://littie1987.iteye.com/blog/1023573 基于泛型DAO的Facade设计模式.http://www.iteye.com/topic/403182 spring mvc 系列2 泛型DAO(基于存储过程)原创 2014-10-09 10:41:40 · 697 阅读 · 0 评论