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 · 88 阅读 · 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 · 106 阅读 · 0 评论 -
hibernate学习之第十二篇
《三》混合使用“一个类继承体系一张表”和“每个子类一张表”比如上面的例子,worker类可能属性很少,而farmer属性却很多,把两者都与person放在同一张表中,则显得表的 结构不是很合理,会有很多字段是null。所以我们可以把属性少的worker与person放在一张表中维护,而对farmer单独用一张表保存信息。person.hbm.xml配置信息如下:<?xml vers...原创 2009-03-06 15:57:06 · 91 阅读 · 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 · 106 阅读 · 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 · 137 阅读 · 0 评论 -
hibernate学习之第十四篇
hibernate的内部缓存hibernate的缓存分为两级:一级缓存(session级)和二级缓存(sessionFactory级)缓存的作用主要用来提高性能,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存,从缓存中获取数据,删除缓存中的无效数据。一级缓存,Session级共享。save,update,saveOrUpdate,load,get,list,it...原创 2009-03-09 17:48:50 · 118 阅读 · 0 评论 -
Hibernate二级缓存攻略(转)
Hibernate二级缓存攻略(转) 很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给...原创 2009-03-09 22:56:56 · 73 阅读 · 0 评论 -
hibernate学习之第十五篇
事务与事务边界 hibernate实际上使用jdbc实现事务管理,这种事务只能用于一个数据库。tx = session.beginTransaction();这句代码内部实际就是connection.setAutoCommit(false);的操作。Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或者JTA,以实现...原创 2009-03-11 21:33:28 · 116 阅读 · 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 · 99 阅读 · 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 · 98 阅读 · 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 · 103 阅读 · 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 · 100 阅读 · 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 · 105 阅读 · 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 · 88 阅读 · 0 评论 -
hibernate 技术学习笔记(第一篇)
引入:模型不匹配(阻抗不匹配)java面向对象语言,对象模型,其主要概念有:继承,关联,多态等;数据库是关系模型,其主要概念有:表,主键,外键等。解决方法:1.使用JDBC手工转换2.使用ORM(object relation mapping对象关系映射)框架来解决,主流的ORM框架有Hibernate,TopLink,OJB技术:SessionFactoroy 类似于jdb...原创 2009-02-28 18:14:26 · 106 阅读 · 0 评论 -
hibernate学习之第二篇
持久化三个要点:1,为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 属性不一定需要声明为public的。Hibernate可以对default,protected或者private的get/set方法对的属性一视同仁地执行持久化。 2,实现一个默认的构造方法(constructor) 所有的持久化类都必须具有一个默认的构造方法(可以不是publi...原创 2009-02-28 18:19:16 · 106 阅读 · 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 · 116 阅读 · 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 · 107 阅读 · 0 评论 -
hibernate学习之第五篇
1,oracle数据库中,user是关键字,如果用户的表名为user会引起冲突。采取的方法主要有两种:①如果可以修改表名,最好改变表名为tuser或其他的名字,免得引起麻烦。②如果表名不能修改,那么可以在配置文件中加上反引号,让oracle把user当做字符串处理,而不是关键字。如下:<hibernate-mapping package="hibernatetest">...原创 2009-03-01 19:43:48 · 109 阅读 · 0 评论 -
深入浅出hibernate摘录
以下摘自深入浅出hibernate:DAO模式中,数据库访问层实现被隐藏到Data Accessor中,前面说过,DAO模式实际上是两个模式的组合,即Data Accessor和domain Object模式。何谓Data Accessor?即将数据访问的实现机制加以封装,于数据的使用代码想分离,从外部来看,Data Accessor提供了黑盒式的数据存取接口。Domain Objec...原创 2009-03-01 19:45:58 · 106 阅读 · 0 评论 -
深入浅出hibernate摘录2
以下内容摘自深入浅出hibernate在编写代码的时候,尽量将POJO的getter/setter方法设定为public,如果设定为private,protected,hibernate将无法对属性的存取进行优化,只能转而采用传统的反射机制进行操作(hibernate3中进行了局部改进),这将导致大量的性能开销(特别是在IBM JDK以及1.4之前的sun JDK版本中,反射带来的系统开销相当...原创 2009-03-02 00:38:11 · 148 阅读 · 0 评论 -
hibernate 学习之第六篇
基于主键的一对一关联Person类和IdCard,一对一映射。person的属性为:id,name,idCardIdCard的属性为:id,usefulLife,person由于身份证和人是一对一的,身份证的id和人的id可以相同。可以使得idcard的id的产生与person保持一致。主从对象通过主键关联起来。类Person:public class Person {pri...原创 2009-03-02 20:31:14 · 87 阅读 · 0 评论 -
hibernat学习之第七篇
多对多关联关系的映射在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;hibernate会为我们创建中间关联表,转换成两个一对多。核心配置: <set name="ss" table="teacher_student"> <key column="teacher_id"></key> ..原创 2009-03-03 13:06:47 · 82 阅读 · 0 评论 -
hibernate学习之第八篇
组件映射关联的属性是个复杂类型的持久化类,但不是实体即:数据库中没有表与该属性对应,但该类的属性要持久保存的。对于单表的对象细分,在hibernate中可借助Component节点的定义完成。何谓Component?从名字上来看,既然称之为组件,则其必然是从属于某个整体的一个组成部分。在hibernate语义中,我们将某个实体对象中的一个逻辑组成成为Component。comp...原创 2009-03-03 22:11:43 · 74 阅读 · 0 评论 -
hibernate学习之十八篇
hibernate不适合的场景:1,不适合OLAP(on-line Analytical Processing 联机分析处理),以查询分析数据为主的系统;适合OLTP(On-line transaction processing联机事务处理)。2,对于某些关系模型设计不合理的 老系统,也不能发挥hibernate优势。3,数据量巨大,性能要求苛刻的系统,hibernate也很难达到要求...原创 2009-03-16 17:27:01 · 98 阅读 · 0 评论