hibernate
baother0
这个作者很懒,什么都没留下…
展开
-
关于延迟加载(lazy)和强制加载
关于延迟加载(lazy)和强制加载(Hibernate.initialize(Object proxy) ) PO 即Persistence Object VO 即Value Object PO 和VO 是Hibernate 中两个比较关键的概念。 首先,何谓VO,很简单,VO 就是一个简单的值对象。 如: TUser user = new TUser(); use转载 2013-05-19 22:43:11 · 939 阅读 · 0 评论 -
Hibernate各种映射类型
People:package model;import java.sql.Date;import java.sql.Timestamp;public class People { private Long id; private String username; private String password; private int telphone;原创 2013-05-11 21:53:58 · 616 阅读 · 0 评论 -
<id>元素的映射OID
元素映射值类型属性-name属性:指定持久化类的属性名字。-type属性:指定hibernate或java映射类型。hibernate映射类型是java类型是java类型与sql类型的桥梁。column属性:指定与类的属性映射的表的字段名。Java类型,hibernate映射类型以及sql类型之间的对应关系Hibernate配置文件的属性通过Hi原创 2013-05-11 21:55:13 · 1234 阅读 · 0 评论 -
Hibernate关键API详解
在java中使用Hibernate的步骤---创建Hibernate的配置文件---创建持久化类---创建对象-关系映射文件---通过Hibernate API编写访问数据库代码开始Hibernate:<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hiberna原创 2013-05-11 21:55:28 · 727 阅读 · 0 评论 -
hibernate中继承映射
继承映射:1)每个类一张表。package model;public class Person { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } pu原创 2013-05-26 19:38:09 · 755 阅读 · 0 评论 -
hibernate中组件映射
package model;public class Address { private String homeAddress; private String schoolAddress; public String getHomeAddress() { return homeAddress; } public void setHomeAddress(String hom原创 2013-05-26 19:41:52 · 675 阅读 · 0 评论 -
关于hibernate中双向外键关联one-to-one的property-ref=的问题
2011-07-06 18:19:14| 分类: 默认分类 | 标签:hibernate property-ref |字号 订阅大家都知道hibernate中的one-to-one映射主要有两种策略,(1)一对一主键关联(单向和双向)。(2)一对一外键映射(单项和双向)。本文主要讲解一下,一对一外键映射中的双向问题,在此前先通过一个实例了解。 person和idCar转载 2013-06-02 16:52:45 · 789 阅读 · 0 评论 -
hibernate1
应用程序的分层体系结构发展双层应用-应用程序层-数据库层三层应用-表示层-业务逻辑层-数据库层四层应用-表示层-业务逻辑层-持久化层-数据库层层与层之间存在自上而下的依赖关系,即上层组件会访问下层组件的API,而下层组件不应该依赖上层组件。eg:表示层依赖义务逻辑层,而业务逻辑层依赖于数据库层。每个层对于上层公开P原创 2013-05-11 21:53:23 · 680 阅读 · 0 评论 -
hibernate中HQL
package entity;import java.util.HashSet;import java.util.Set;public class Team{ private String id; private String teamName; @SuppressWarnings("unchecked") private Set students = new Has原创 2013-06-02 16:47:34 · 657 阅读 · 0 评论 -
hibernate中的propery-ref 用法
1.如表Class(ClassID,Class_No,ClassName)与Student(StudentID,studentName,Class_No), 其中ClassID,studentID为主键 两个表是一对多的关系,而要求两个通过ClassNo来关联. 而一般的情况下是通过ClassID,放在student表中作为外键. 2.具体的Hibernate的配置文件如下: Clas原创 2013-06-02 16:51:55 · 900 阅读 · 0 评论 -
数据库的隔离级别
1:事务(Transaction)体现在整体的概念,要么事务中的操作全都失败,要么全多成功。。。Eg:(1):从Tom的账号上减去100元(2):从Jack的账号上增加100元2:数据库事务的生命周期3:mysql的事务默认是自动提交的。 可以通过设置@@autocommit这个全局变量来变成手动提交Select @@autocommit;Result:原创 2013-05-28 21:34:53 · 609 阅读 · 0 评论 -
数据隔离级别二
package entity;import java.util.HashSet;import java.util.Set;public class Student{ private String id; private String cardId; private int age; private String name; //版本控制 private i原创 2013-05-29 23:30:24 · 636 阅读 · 0 评论 -
Hibernate二级缓存
usage有是四个属性:transactional:必须在受管的环境下使用,保存可重复读的事务隔离级别,对于读/写比例大,很少更新的数据通常采用这种方式。read-write:使用timestamp机制维护已提交事务隔离级别,对于读/写比例大,很少更新的数据通常采用这种方式。nonstrict-read-writer:二级缓存与数据库中的数据可能会出现不一致的情况。在使用这种策略的时候原创 2013-06-02 16:50:57 · 754 阅读 · 0 评论 -
Hibernate检索方式(二)
一:隐式内内连接在HQL查询语句中,如果对Customer类赋予别名’c’,就可以通过c.name的形式访问name属性,还可以通过c.homeAddress.provice的形式访问homeAddress组件的Province属性。//HQL检索方式session.createQuery(“from Customer c where c.homeAddress.provinc原创 2015-08-11 12:23:43 · 594 阅读 · 0 评论 -
hibernate中的检索策略
假定Customer类和Order类之间为双向一对多关联关系。Customer类型包含如下属性:private Long id;private String name;private Set ordres = new HashSet();Order类包含如下属性:private Long id;private String orderNumber;private原创 2015-08-11 12:25:35 · 706 阅读 · 0 评论 -
Hibernate的检索方式(一)
Hibernate提供了一下的几种检索对象的方式。(1):导航对象图检索方式根据已经加载的对象,导航到其他对象。如对于已经加载的Customer对象,调用它的getOrders().iterator()方法,就可以导航到所有关联的Order对象,假如在关联级别使用了延迟加载检索策略,那么首次执行此方法时,Hibernate会从数据库中加载关联的Order对象,否则就从Session缓存中取原创 2015-08-11 12:24:55 · 829 阅读 · 0 评论 -
映射一对多关联关系
1:创建具有一对多个关联关系的域模型。2:创建具有一对多参照关系的关系模型3:映射一对多关联关系4:通过hibernate Api脊梁操作具有关联关系的域对象。Customer和order的一对多双向关联create table CUSTOMERS( ID bigint not null, NAME varchar(15), primary key (原创 2013-05-11 21:53:46 · 832 阅读 · 0 评论 -
hibernate映射map
1:value为基本数据类型package model;import java.util.HashMap;import java.util.Map;public class Team { private String id; private String teamName; private Map students = new HashMap (); publi原创 2013-05-26 19:45:57 · 661 阅读 · 0 评论 -
hibernate映射复合主键-1
联合主键的映射规则1:类中的每个主键属性都对应到数据库中的每个主键列。Hiberanate要求具有联合主键的实体类实现Serializable接口,并且重写hashCode和equals方法,重写这两个方法的原因在于hibernate要根据数据库的联合主键来判断某两行的记录是否一样的,如果一样那么就认为是同一个对象,如果不一样,那么就认为是不同的对象。这就反映到程序领域中就是根据hashC原创 2013-05-26 19:42:50 · 718 阅读 · 0 评论 -
域对象在持久化层的三种状态
!import-session的缓存的作用-session清理缓存的时间点-对象的临时状态,持久化状态和游离状态-用session的update方法使游离对象转化为持久化对象session级别的缓存又叫一级缓存;SessionFactory级别的缓存叫做二级缓存。在hibernate应用中java对象的状态-临时状态(transient):刚刚用new语句创建,原创 2013-05-11 21:51:46 · 1131 阅读 · 0 评论 -
Hibernate Session的save()方法
Hibernate Session的save()方法 Session的save()方法使一个临时对象转变为持久化对象。例如以下代码保存一个Customer对象: Customer customer = new Customer(); customer.setId(new Long(9)); // 为Customer临时对象设置OID是无效的转载 2013-05-19 22:42:31 · 5019 阅读 · 0 评论 -
原创) Hibernate中cascade与inverse属性详解
关于Hibernate中 cascade 与 inverse 的理解。您买的Hibernate书是哪一本呢? 孙卫琴的精通Hibernate,还是 深入浅出Hibernate还是那本。。。我是两本都买了,总体来说还可以,但是,有的地方讲的比较书面化,比如inverse这属性。在学习Hibernate的过程中最不好理解的就是这两个属性了。(我当初学习Hibernate的时候,发现网上转载 2013-05-19 22:42:46 · 574 阅读 · 0 评论 -
HQL(Hibernate Query Language)
1:HQL(Hibernate Query Language):面向的是对象而不是数据库中的表,这是与SQL(Structured Query Language)之间的差别2:Session的get与load方法都可以获取相应的持久化对象,如果该对象存在,那么这二个方法的行为是一样的;如果改对象不存在,那么get方法会返回null而load方法会抛出异常。2:用hibernate实原创 2013-05-09 17:38:14 · 735 阅读 · 0 评论 -
hibernate中映射list
package model;import java.util.ArrayList;import java.util.List;public class Team { private String id; private String teamName; private List students = new ArrayList (); public List ge原创 2013-05-24 23:58:59 · 791 阅读 · 0 评论 -
hibernate中一对多映射(set集合中存放的原生数据类型,而不是实体)
1:map与set标签中的element子标签映射的是原子类型(string,date,int,long.....),即可以直接映射到数据库表字段上的类型,而one-to-many映射的则是实体类型,指的是无法映射到表的某个字段,而是映射到整张表的类型。package model;import java.util.HashMap;import java.util.HashSe原创 2013-05-24 23:59:15 · 1642 阅读 · 0 评论 -
hibernate映射map
1:value为基本数据类型package model;import java.util.HashMap;import java.util.Map;public class Team { private String id; private String teamName; private Map students = new HashMap (); publi原创 2013-05-24 23:59:40 · 627 阅读 · 0 评论 -
hibernate中多对多映射
package model;import java.util.Set;public class Student { private String id; private String name; private Set course; public String getId() { return id; } public void setId(String id原创 2013-05-25 00:00:45 · 869 阅读 · 0 评论 -
hibernate-对一映射
一对一映射 1:主键关联ADDRESSS表中的ID字段主键,同时作为外键参照CUSTOMERS表中的主键。package model;public class Customer { private Long id; private String name; private Address address; public Long g原创 2013-05-25 00:03:17 · 709 阅读 · 0 评论 -
Hibernate中 Bag
Bag(结合了List与Set),可以重复且没有顺序的一种集合,是hibernate提供的。hibernate用List来模拟bag。package model;public class Student { private String id; private String card_id; private String name; private int ag原创 2013-05-26 19:43:45 · 997 阅读 · 0 评论 -
Hibernate 中的 ORM 映射 原理
Hibernate 中的 ORM 映射 原理博客分类: Hibernate 什么是 ORM 映射: Object Relationship Mapping :对象 关系 映射。 在关系型数据库中,一张表中有很多字段,而这些字段分为两类: 关系字段: 引用关系 ,外键引用 字段,引用另外一张表的一条记录 。 普通字段: 仅作为记录信息的字段存在 在开转载 2013-05-11 19:28:33 · 1218 阅读 · 0 评论 -
映射Category一对多双向自身关联关系
create table categories ( id bigint not null, name varchar(15), category_id bigint, primary key (id));<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http原创 2013-05-11 21:52:23 · 1174 阅读 · 0 评论 -
hiberdate2
对象-关系-ORM(Object-relationShip Mapping)模式:在单个组件中负责所有的实体或者对象的持久化,封装的数据访问的细节。Hiberndate是一个ORM的一个实现。对象-关系映射的概念:ORM解决的主要问题就是对象-关系的映射。域模型和关系模型都分别是建立在概念模型的基础上。域模型是面向对象的,而关系数据模型是面向关系的。一般原创 2013-05-11 21:54:22 · 738 阅读 · 0 评论 -
hibernate中查询排序
查询排序:(内存排序与数据库排序)推荐使用数据库排序package model;public class Student { private String id; private String card_id; private String name; private int age; private Team team; public Team g原创 2013-05-26 19:37:21 · 1035 阅读 · 0 评论 -
hibernate中一对多的方式二
package model;import java.util.HashSet;import java.util.Set;public class Student { private String id; private String name; private Set contacts = new HashSet(); public String getId() {原创 2013-05-26 19:39:10 · 647 阅读 · 0 评论 -
Hibernate高级查询
一:动态查询HQL与QBC能够完成许多相同的任务,相比之下,HQL能更加直观地表达复杂的查询语句。而通过QBC来表达复杂的查询语句很麻烦。以下的两个代码完成相同的任务,但是HQL检索方式的程序代码更加简洁://HQL检索方式Query query=session.createQuery(“from Customer c” +”where (c.name like ‘T%’ a原创 2015-08-11 12:26:17 · 815 阅读 · 0 评论