HIbernate3.5.6
文章平均质量分 64
iteye_9841
这个作者很懒,什么都没留下…
展开
-
联合主键--xml
需求: 在T_STUDENTS表中 要将ID和NAME联合作为主键: 1.将id和name属性定义到一个主键类中:StudentPK 并重写hashCode()和equals()方法同时要继承Serializable接口 package com.zchen.hibernate.sxt.domain;import java.io.Serializable;publi...原创 2011-06-02 11:41:31 · 151 阅读 · 0 评论 -
多对一(员工and部门)
ER: employee名称主键类型描述idpkint员工编号name varcher(45)员工名称department_idfkint部门编号 department名称主键类型描述idpkint部门编号name varchar(...原创 2010-12-05 21:12:27 · 132 阅读 · 0 评论 -
一对多(部门and员工)
package com.zchen.user.domain;import java.util.HashSet;import java.util.Set;public class Department { private int id; private String name; private Set<Employee> employees = new...原创 2010-12-05 22:13:24 · 148 阅读 · 0 评论 -
一对一主键映射(人and身份证)
package domain;import java.util.Date;public class IdCard { private int id; private Date usefulLise; private Person person; public int getId() { return id; } public void setI...原创 2010-12-06 06:40:51 · 173 阅读 · 0 评论 -
一对一外键映射(人and身份证)
ER:person字段名主键类型描述idpkint编号name varchar姓名age int年龄id_card字段名主键类型描述idpkint编号useful_life date有限期限person_idfkint...原创 2010-12-06 07:14:39 · 141 阅读 · 0 评论 -
多对多(老师and学生)
ER teacher:字段名主键类型描述idpkint老师编号name varchar老师姓名 student:字段名主键类型描述idpkint学生编号name varchar学生姓名 ...原创 2010-12-06 07:55:34 · 289 阅读 · 0 评论 -
组件映射
xml配置方式:tb_user字段名主键类型描述idpkint编号first_name varchar(50)姓last_name varchar(50)名birthday Date出生年月package domain;import java.util.Date;...原创 2010-12-06 08:14:43 · 82 阅读 · 0 评论 -
Hibernate中使用集合类型
package domain;import java.util.List;import java.util.Map;public class Department { private int id; private String name; //private Set<Employee> emps; //private List<Employe...原创 2010-12-06 08:59:22 · 97 阅读 · 0 评论 -
关联关系的级联操作Cascade
cascade和inverse(Employee——Department)1.Cascade用来说明当对对象进行某种操作时是否对其关联的从对象也做类似的操作,常用的cascade:none、all、save-update、delete、lock、refresh、evict、replicate、persist、merge、delete-orphan(one-to-many),一般many-to-...原创 2010-12-06 09:20:33 · 488 阅读 · 0 评论 -
继承关系(一张表)
employee字段名主键类型描述idpkint员工编号name varchar(50)员工姓名department_idfkint所属部门编号type int所属员工类型skill varchar(50)技能员工(type=1)sell int销售员工(t...原创 2010-12-06 10:49:14 · 154 阅读 · 0 评论 -
Hibernate使用本地SQL查询语句
使用本地sql查询语句使用的是Query接口:Query query = session.createSQLQuery("select * from user");List list = query.list()需要提出的是:1.sql中的user不是对象而是数据库对应的表名; 2.此时查询出来的list不是实体对象而是Object数组 ...原创 2010-12-06 14:12:17 · 71 阅读 · 0 评论 -
Hibernate使用命名查询
命名查询:就是在配置文件里面定义好sql语句。 简单示例:<hibernate-mapping package="com.zchen.domain">...... </class> <query name="getUserByName"> <![CDATA[from Use...原创 2010-12-06 14:37:27 · 115 阅读 · 0 评论 -
Hibernate的拦截器与监听器
定义监听器并继承SaveOrUpdateEventListener接口package dao;import org.hibernate.HibernateException;import org.hibernate.event.SaveOrUpdateEvent;import org.hibernate.event.SaveOrUpdateEventListener;i...原创 2010-12-06 14:57:43 · 54 阅读 · 0 评论 -
Session和SessionFactory的多线程问题
Session:是非线程安全的,生命周期较短,代表一个和数据库的连接,在B/S系统中一般不会超过一个请求,内部维护一级缓存和数据库连接,如果Session长时间打开会长时间占用内存和数据库连接。SessionFactory:是线程安全的,一个数据库对应一个SessionFactory,生命周期长,一般在整个系统生命周期内有效;SessionFactory保存着数据库连接的相关信息(user,p...原创 2010-12-06 15:20:58 · 347 阅读 · 0 评论 -
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hiberna...原创 2010-12-18 15:30:31 · 59 阅读 · 0 评论 -
Hibernate设置使用Tomcat中的连接池
1.修改Tomcat的context.xml文件<Context reloadable="true"> <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource" maxActive="100" ma原创 2010-12-18 16:31:58 · 153 阅读 · 0 评论 -
第一个Hibernate实现CRUD
0.创建webapp 带入hibernate包。1.新建domain类:(com.zchen.user.domain)package com.zchen.user.domain;import java.util.Date;public class User { private int id; private String name; private Dat...原创 2010-12-05 20:00:55 · 94 阅读 · 0 评论 -
HQL查询入门
Query q = session.createQuery(hql);1.from Person2.from User user where user.name=:name3.from User user where user.name=:name and user.birthday < :birthdayQuery1.根据name查询全部public void query(String...原创 2010-12-05 18:29:23 · 82 阅读 · 0 评论 -
实体对象的三种状态
1.瞬态(Transient): 数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。2.持久(Persistent): 数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交:持久对象状态发生状态在事务提...原创 2010-12-05 18:16:36 · 253 阅读 · 0 评论 -
联合主键--Annotation
联合主键Annotation配置方法有三种:1.将组件类注解为@EmbeddedId,并将组建的属性注解为@Id2.将组件的属性注解为@EmbeddeId3.将类注解为@IdClass,并将该实体中所有的主键的属性都注解为@Id 第一种:1.定义注解类并其直接为@Embeddablepackage com.zchen.hibernate.sxt.domain;i...原创 2011-06-02 12:23:38 · 124 阅读 · 0 评论 -
Configuration取配置文件 以及取得Session的两种方法的区别
在得到SessionFactory的时候要先取得配置文件:Hibernate.cfg.xml文件 这时有Configuration类得到的: new AnnotationConfiguration().configure().buildSessionFactory();configure()方法自动会在classpath目录下找HIbernate.cf...原创 2011-06-02 12:55:10 · 433 阅读 · 0 评论 -
一对一单向外键关联
一对一单向外键关联 分为Annotation和xml方式: 第一种:Annotation配置方式:丈夫和妻子 在丈夫表里面有妻子的Id package com.zchen.hibernate.oneTone;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import ...原创 2011-06-02 17:01:47 · 86 阅读 · 0 评论 -
一对一双向外键关联
妻子和丈夫: 在丈夫表里面有妻子的外键学生和学生证: 在学生证表里面有学生的外键 第一种:Annotation配置package com.zchen.hibernate.oneTone;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.p...原创 2011-06-02 17:15:00 · 116 阅读 · 0 评论 -
一对一单双向主键关联-xml
用户表和用户信息表:规定:用户信息表中的id主键由用户表生成。 单向映射:package com.zchen.hibernate.oneTone;public class Person { private int id; private String name; public int getId() { return id; } public voi...原创 2011-06-02 17:45:38 · 88 阅读 · 0 评论 -
枚举映射和不映射的属性配置
import java.util.Date;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.EnumType;import javax.persistence.Enumerated;import javax.persistence.Generat...原创 2011-06-02 17:54:07 · 135 阅读 · 0 评论 -
关联关系的联合主键映射
丈夫和妻子 其中妻子表的主键由id和name组成 ,丈夫和妻子之间是一对一的关系. package com.zchen.hibernate.component;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.IdClass;import javax....原创 2011-06-02 18:24:21 · 146 阅读 · 0 评论 -
多对一单向关联
组和人员: 一个组有多个人员,一个人员属于一个组在用户表里面有组的外键Annota配置方式:package com.zchen.hibernate.manytone;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;i...原创 2011-06-02 18:56:50 · 138 阅读 · 0 评论 -
一对多单向关联
组和用户一个组有多个用户,一个用户只能属于一个组:表结构:在用户表中有组的外键 Annotation生成方式:package com.zchen.hibernate.onetmany;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import j...原创 2011-06-02 19:10:33 · 89 阅读 · 0 评论 -
一对多和多对一双向关联
一个组有多个用户 一个用户只能属于一个组 在用户表里面有组的外键 Annotation配置:package com.zchen.hibernate.mtootm;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistenc...原创 2011-06-02 20:42:11 · 184 阅读 · 0 评论 -
多对多单向关联
老师和学生: Annotation配置:package com.zchen.hibernate.manytmany;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;imp...原创 2011-06-02 21:28:06 · 102 阅读 · 0 评论 -
多对多双向关联
老师和学生: Annotation配置:package com.zchen.hibernate.manytmany;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;impo...原创 2011-06-02 21:38:22 · 82 阅读 · 0 评论 -
Hibernate 1+N 问题
1+N问题的描述:举例,多个主题(Topic)属于一个帖子(Category),一个帖子含有多个主题。当只需要查询Topic时不要查询Category时,如果@ManyToOne的属性fetch=FetchType.EAGER,这时查询所有Topic时,每查询一个Topic就会多产生一个SQL语句查询相关的Category表的数据,这样要是有N条Topic数据,就会产生1+N条SQL语句。同样的...原创 2011-06-03 08:17:32 · 106 阅读 · 0 评论 -
定义一个工具类获取SessionFactory或Session对象
public final class HibernateUtil{ private SessionFactory sessionFactory; private HibernteUtil(){} static{ Configuration cfg = new Configuration(); cfg.configure(); sessionFactory = cfg....原创 2010-12-05 18:10:31 · 274 阅读 · 0 评论 -
Session接口操作数据库的核心方法
1.save()——规范例子: public void addUser(User user){ Session session = null; Transaction tx = null; try{ session = HibernateUtil.getSession(); tx.session.beginTransaction()...原创 2010-12-05 18:12:19 · 411 阅读 · 0 评论 -
Hibernate设置使用C3P0连接池
1.导入jar文件2.修改hibernate.cfg.xml<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http:/...原创 2010-12-18 16:37:31 · 103 阅读 · 0 评论