
hibernate
文章平均质量分 80
iteye_19096
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hibernate
person 类: package com.jianchen; public class Person { private int id; private String name; private IdCard idcard; public int getId() { return id; } public void setId(int id) { this.id ...2008-06-04 16:57:50 · 108 阅读 · 0 评论 -
hibernate学习之第十一篇(2)
《二》每个子类映射到一张表(joined-subclass) 配置文件修改为: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.n...原创 2009-03-05 23:00:25 · 128 阅读 · 0 评论 -
hibernate学习之第十二篇
《三》混合使用“一个类继承体系一张表”和“每个子类一张表” 比如上面的例子,worker类可能属性很少,而farmer属性却很多,把两者都与person放在同一张表中,则显得表的 结构不是很合理,会有很多字段是null。所以我们可以把属性少的worker与person放在一张表中维护,而对farmer单独用一张表保存信息。 person.hbm.xml配置信息如下: <?xml vers...原创 2009-03-06 15:57:06 · 108 阅读 · 0 评论 -
hibernate学习之第十二篇(续)
《四》每个具体类映射一张独立的表(union-subclass),即表与子类之间的独立一对一关系 所有的子类的表中的信息都是完整的,不需要对表进行关联了。 person.hbm.xml的配置如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi...原创 2009-03-06 19:10:25 · 135 阅读 · 0 评论 -
hibernate学习之第十三篇
load方法的懒加载及原理分析 懒加载的目的,减少不必要的数据库查询,提升性能。 借用前面组件映射中的user类,对测试代码做写改变: public class Main { public static void main(String[] args) { User user = new User(); user.setBirthday(new Dat...原创 2009-03-09 17:41:02 · 164 阅读 · 0 评论 -
hibernate学习之第十四篇
hibernate的内部缓存 hibernate的缓存分为两级:一级缓存(session级)和二级缓存(sessionFactory级) 缓存的作用主要用来提高性能,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存,从缓存中获取数据,删除缓存中的无效数据。 一级缓存,Session级共享。 save,update,saveOrUpdate,load,get,list,it...原创 2009-03-09 17:48:50 · 146 阅读 · 0 评论 -
Hibernate二级缓存攻略(转)
Hibernate二级缓存攻略(转) 很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给...原创 2009-03-09 22:56:56 · 94 阅读 · 0 评论 -
hibernate学习之第十五篇
事务与事务边界 hibernate实际上使用jdbc实现事务管理,这种事务只能用于一个数据库。 tx = session.beginTransaction();这句代码内部实际就是connection.setAutoCommit(false);的操作。 Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或者JTA,以实现...原创 2009-03-11 21:33:28 · 139 阅读 · 0 评论 -
hibernate学习之第十六篇
session context和事务边界 用current_session_context_class属性来定义context(用sessionFactory.getCurrentSession()来获得session),其值为: 1,thread:ThreadLocal来管理Session实现多个操作共享一个Session,避免反复获取Session,并控制事务边界,此时session不能调用...原创 2009-03-11 21:36:34 · 122 阅读 · 0 评论 -
PO and POJO
原文:http://danni505.blog.51cto.com/15547/99441 POJO = pure old java object or plain ordinary java object or what ever. PO = persisent object 持久对象 就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的...原创 2009-03-11 23:49:16 · 117 阅读 · 0 评论 -
hibernate学习之十七篇
零碎知识小结: ◆数据类型: 1,<property name="name" type="java.lang.String"/> type可以是hibernate,java类型或者你自己的类型(需要实现hibernate的一个接口) 2,基本类型一般不需要在映射文件(hbm.xml)中说明,只有在一个java类型和多个数据库数据类型相对应时并且你想要的和hibernate缺省...原创 2009-03-16 12:31:59 · 124 阅读 · 0 评论 -
hibernate学习之第十一篇(1)
hibernate的继承映射 《一》一张表映射一棵继承树 使用discriminator(鉴别标志) 类Worker和Farmer都继承自Person 类Person的源代码如下: package hibernate.extend; public class Person { private int id; private String name; private int age; ...原创 2009-03-05 22:55:17 · 115 阅读 · 0 评论 -
hibernate学习之第十篇
级联和关系维护 Cascade 用来说明当对主对象进行某种操作时,是否对其关联的从对象也作类似的操作,常用的cascade:none,all,save-update,delete,lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many).一般对many-to-many,many-to-many不设置级联,在<...原创 2009-03-05 13:53:17 · 126 阅读 · 0 评论 -
hibernate学习之第九篇
hibernate中的集合类型 引入: Hibernate可以持久化以下java集合的实例, 包括java.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List, 和任何持久实体或值的数组。类型为java.util.Collection或者java.util.List的属性还可以使用"...原创 2009-03-04 22:52:44 · 110 阅读 · 0 评论 -
hibernate 技术学习笔记(第一篇)
引入: 模型不匹配(阻抗不匹配) java面向对象语言,对象模型,其主要概念有:继承,关联,多态等;数据库是关系模型,其主要概念有:表,主键,外键等。 解决方法: 1.使用JDBC手工转换 2.使用ORM(object relation mapping对象关系映射)框架来解决,主流的ORM框架有Hibernate,TopLink,OJB 技术: SessionFactoroy 类似于jdb...原创 2009-02-28 18:14:26 · 131 阅读 · 0 评论 -
hibernate学习之第二篇
持久化三个要点: 1,为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 属性不一定需要声明为public的。Hibernate可以对default,protected或者private的get/set方法对的属性一视同仁地执行持久化。 2,实现一个默认的构造方法(constructor) 所有的持久化类都必须具有一个默认的构造方法(可以不是publi...原创 2009-02-28 18:19:16 · 118 阅读 · 0 评论 -
hibernate学习之第三篇(映射文件的配置)
如果不希望使用默认的hibernate.cfg.xml 文件作为配置文件,我们也可以指定配置文件名: File file = new File("C:\\myhibernate.xml"); Configuration config = new Configuration().configure(file); <class name="ClassName" ...原创 2009-02-28 18:24:48 · 138 阅读 · 0 评论 -
hibernate学习之第四篇(对象状态)
session 的几个主要方法: 1,save方法和persist方法的区别; 2,delete,删除对象 3,update,更新对象,如果数据库中没有记录,会出现异常。 4,get,根据ID查,会立刻访问数据库。 5,load,根据ID查,(返回的是代理,不会立即访问数据库) 6,saveOrUpdate,merge(根据id和version的值来确定是save还是update),调用merg...原创 2009-03-01 19:38:06 · 134 阅读 · 0 评论 -
hibernate学习之第五篇
1, oracle数据库中,user是关键字,如果用户的表名为user会引起冲突。采取的方法主要有两种: ①如果可以修改表名,最好改变表名为tuser或其他的名字,免得引起麻烦。 ②如果表名不能修改,那么可以在配置文件中加上反引号,让oracle把user当做字符串处理,而不是关键字。 如下: <hibernate-mapping package="hibernatetest">...原创 2009-03-01 19:43:48 · 132 阅读 · 0 评论 -
深入浅出hibernate摘录
以下摘自深入浅出hibernate: DAO模式中,数据库访问层实现被隐藏到Data Accessor中,前面说过,DAO模式实际上是两个模式的组合,即Data Accessor和domain Object模式。 何谓Data Accessor?即将数据访问的实现机制加以封装,于数据的使用代码想分离,从外部来看,Data Accessor提供了黑盒式的数据存取接口。 Domain Objec...原创 2009-03-01 19:45:58 · 138 阅读 · 0 评论 -
深入浅出hibernate摘录2
以下内容摘自深入浅出hibernate 在编写代码的时候,尽量将POJO的getter/setter方法设定为public,如果设定为private,protected,hibernate将无法对属性的存取进行优化,只能转而采用传统的反射机制进行操作(hibernate3中进行了局部改进),这将导致大量的性能开销(特别是在IBM JDK以及1.4之前的sun JDK版本中,反射带来的系统开销相当...原创 2009-03-02 00:38:11 · 168 阅读 · 0 评论 -
hibernate 学习之第六篇
基于主键的一对一关联 Person类和IdCard,一对一映射。 person的属性为:id,name,idCard IdCard的属性为:id,usefulLife,person 由于身份证和人是一对一的,身份证的id和人的id可以相同。可以使得idcard的id的产生与person保持一致。主从对象通过主键关联起来。 类Person: public class Person { pri...原创 2009-03-02 20:31:14 · 111 阅读 · 0 评论 -
hibernat学习之第七篇
多对多关联关系的映射 在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;hibernate会为我们创建中间关联表,转换成两个一对多。 核心配置: <set name="ss" table="teacher_student"> <key column="teacher_id"></key> ..原创 2009-03-03 13:06:47 · 98 阅读 · 0 评论 -
hibernate学习之第八篇
组件映射 关联的属性是个复杂类型的持久化类,但不是实体即:数据库中没有表与该属性对应,但该类的属性要持久保存的。 对于单表的对象细分,在hibernate中可借助Component节点的定义完成。 何谓Component?从名字上来看,既然称之为组件,则其必然是从属于某个整体的一个组成部分。在hibernate语义中,我们将某个实体对象中的一个逻辑 组成成为Component。 comp...原创 2009-03-03 22:11:43 · 88 阅读 · 0 评论 -
hibernate学习之十八篇
hibernate不适合的场景: 1,不适合OLAP(on-line Analytical Processing 联机分析处理),以查询分析数据为主的系统;适合OLTP(On-line transaction processing联机事务处理)。 2,对于某些关系模型设计不合理的 老系统,也不能发挥hibernate优势。 3,数据量巨大,性能要求苛刻的系统,hibernate也很难达到要求...原创 2009-03-16 17:27:01 · 119 阅读 · 0 评论