
hibernate文章
渝路蓝天
这个作者很懒,什么都没留下…
展开
-
1.16 表之间的关系(单一主键的一对一关系)
一、表之间的关系有:1.一对一:单向、双向;2.一对多:单向、双向;3.多对一:单向、双向;4.多对多:单向、双向;二、一对一单向关系举例(annotation 方式)。例如:husband和wife两个表,都有id和name字段。在数据库的设计上,应为:wife作为主表,husband作为子表,husband表中需要加入wife表的wifeid字段。在类的设计上,原创 2015-12-12 17:49:01 · 934 阅读 · 0 评论 -
1.20 一对多单项关联
组与成员是一对多关系。1.group类@Entity@Table(name="t_group")public class Group {private int id;private String name;private Set users = new HashSet();@Id@GeneratedValuepublic int getId() {ret原创 2015-12-17 22:47:30 · 283 阅读 · 0 评论 -
1.12 JTA(java transaction API)
1.什么情况下需要两个session。如图,一个事务需要从两个服务器的数据库(产品,和财务)上提取数据时。原创 2015-11-30 21:03:22 · 291 阅读 · 0 评论 -
1.18 组件映射(一个表对应两个类)
在实际编程中,一个数据库表可以对应两个类(例如husband和wife类,wife类是husband类的一个字段。一、annotation实现方式1.wife类public class wife{public string wifename;public int age;...age和wifename的get、set方法}2.husband类@entityp原创 2015-12-14 22:56:58 · 339 阅读 · 0 评论 -
1.19 多对一 关系 (多对一为多方外键;一对多为一方外键)
一、多对一关系(annotation 方式)例如,一个人有多个梦想,如果外键加在person表上,出现冗余;一般多对一关系,外键加在多得一方。代码举例:例如:组与成员的关系。1.group类@entitypublic class group{public int id;public string name;@id@generatedvaluepublic i原创 2015-12-16 22:19:18 · 3257 阅读 · 0 评论 -
1.21 多对多关系 (单向)
例如:老师与学生的关系,一个老师对应多个学生,一个学生对应多个老师。多对多的关系就是在teacher表和student表中间加入了一个中间表,用来映射关系。1.teacher类@Entitypublic class Teacher {private int id;private String name;private Set students = new HashS原创 2015-12-20 20:16:17 · 593 阅读 · 0 评论 -
1.22 多对多(双向)
老师与学生的关系为多对多,其中通过老师找到学生(为单向),而通过老师找到学生,或者学生找到老师为双向。 双向的多对多比较少用。原创 2015-12-20 20:44:30 · 287 阅读 · 0 评论 -
1.14 session的删改
一、delete方法在detached状态下删除teacher对象。代码如下: 根据ID号删除实例 二、load方法load方法是从数据库中加载实例。它有两个参数:第一个是类型,第二个是序列化接口类型(ID数字型打包成Intiger实现了该接口)load方法特性:利用load方法加载对象时,只是生成Teacher对象的一个代表(系统并没有将Teach原创 2015-12-02 20:28:34 · 290 阅读 · 0 评论 -
1.26 树状结构
参考2200——Tree的代码1参见代码package com.bjsxt.hibernate;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import ja原创 2016-01-09 12:05:16 · 188 阅读 · 0 评论 -
1.23 存在关联关系(多对一等等)表的存储
例如,user与group之间的多对一关系的存储。1.user类@Entity@Table(name="t_user")public class User {private int id;private String name;private Group group;@ManyToOne(cascade={CascadeType.ALL})public Grou原创 2015-12-22 21:51:20 · 516 阅读 · 0 评论 -
1.25 继承映射
三种方法实现表的继承。1.student和teacher放在一个表中。2.每个类分别一张表。3.共用属性一个表,每个子类一张表。一、第一种实现方式。student的属性,teacher的属性放在一个表中,用一个字段“fenlei”来区分是学生和老师。这种方法的缺点是,student和teacher都各有50多个属性,这样表格就很乱。二、第二种实现方式,每个类一张原创 2015-12-27 16:13:08 · 266 阅读 · 0 评论 -
1.27 【杂记】hibernate的各种查询方法
hibernate中各种查询方法的总结:1. 使用HQL语句Query q = session.createQuery("select e from com.sun.demo.Emp e");2. 使用Load方法(主键查询)Emp e = (Emp)session.load(Emp.class, 1141);3. 使用get方法(主键查询)Emp原创 2017-06-17 15:11:34 · 290 阅读 · 0 评论 -
1.13 对象的三种状态(transient,peisistent,detached)
1.没有给对象设置ID,没有save之前为瞬时状态(内存中有对象没ID,在数据库和缓存没有);2.save之后为持久状态(在数据库和内存、缓存里有ID)3.session关闭之后为脱管状态。(数据库和内存有ID,而在缓存没有ID)原创 2015-11-30 21:37:11 · 378 阅读 · 0 评论 -
1.9 ID生成策略(xml方式的联合主键)
例如Teacher表中三个字段:name,lian,title。原创 2015-11-29 00:07:35 · 305 阅读 · 0 评论 -
1.17 表之间的关系(联合主键的一对一关系)
husband类和wife类为一对一关联关系,其中wife为联合主键。1.wife类。id和name为联合主键@Entity@IdClass(WifePK.class)public class Wife {private int id;private String name;private int age;public int getAge() {retur原创 2015-12-13 21:08:11 · 936 阅读 · 0 评论 -
1.15 程序控制自动根据xml生成新表
1.在hibernate.cfg.xml配置中,有 update这一句,就是在数据库中没有对应的表时,系统自动生成表格。2.本节将利用程序进行控制hibernate生成新表。new SchemaExport(new AnnotationConfiguration().configure()).creart(true,true);原创 2015-12-12 16:26:36 · 247 阅读 · 0 评论 -
1.2 hibernate一个简单例子
1。数据库准备在booknet数据库的表student中建立两个字段。 2。在MyEclipse中的代码文件架构如下:3。hibernate.cfg.xml内容如下 "-//Hibernate/Hiberna原创 2015-11-26 14:51:35 · 258 阅读 · 0 评论 -
1.3 hibernate annotation环境搭建及简单的例子
1.annotation 的环境搭建新建annotation集合包,将annotation框架加入,见http://download.youkuaiyun.com/my/uploads2.数据库中加入teacher表,三个字段:name,lian,title。3.新建Teacher类,package com.hibernate.util;import javax.persisten原创 2015-11-26 15:17:22 · 255 阅读 · 0 评论 -
1.4 Java的反射机制
所用的类:Method和Class其中S为Student类,m为得到S的getName方法。m.invoke(s)为调用s的getName方法。原创 2015-11-26 23:19:17 · 338 阅读 · 0 评论 -
1.6 Junit环境的搭建
1.建立myJunit集合包2.向其中加入junit-4.7.jar,见http://download.youkuaiyun.com/detail/liudonga515/9306915。3.新建sourcefolder文件夹,在里面建立项目中的package(同名)。新建test case在里面输入测试类名,选择被测试的类。4.例如测试Teacher类。代码如下:package com.hi原创 2015-11-28 00:16:51 · 385 阅读 · 0 评论 -
1.5 添加log4j日志
1.删除之前在hibernate集合包中加入的slf4j-nop-12.5.8.jar,因为它与log4j包冲突。2.建立log4j集合包。3.加入log4j-1.2.15.jar及log4j.properties。具体见http://download.youkuaiyun.com/detail/liudonga515/9306785。即可实现console中显示日志情况。4.加入slf4j-1.原创 2015-11-27 23:04:38 · 307 阅读 · 0 评论 -
1.7 annotation的标示的使用
1.如果类teacher在数据库中没有同名的表,需要制定。方法为:package com.hibernate.util;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="_teacher")p原创 2015-11-28 11:40:03 · 259 阅读 · 0 评论 -
1.8 id的生成策略(单一主键)
1.ID的生成策略设置方式<id name="propertyName" type="typename" column="column_name"原创 2015-11-28 15:58:30 · 342 阅读 · 0 评论 -
1.10 ID生成策略(联合主键annotation方式)
annotation联合主键的方式有三种:一、第一种方法实现1.新建TeacherPK类,@embeddablepublic class TeacherPK implements java.io.Serializable{private int id;private String name;.......如同studentpk类,也要实现equals和has原创 2015-11-29 12:00:42 · 315 阅读 · 0 评论 -
1.11 hibernate的核心借口(configuration,sessionFactory,edc)
public class HibernateCoreAPITest {private static SessionFactory sessionFactory;@BeforeClasspublic static void beforeClass() {sessionFactory = new AnnotationConfiguration().configure().build原创 2015-11-29 16:06:09 · 364 阅读 · 0 评论 -
1.1 hibernate环境的搭建
一、搭建hibernate环境1.使用user library为项目加入jar包在windows的preferce里面的user library里面新建集合包,如hibernate,再在该集合包中加入hibernate的jar包。在项目中,buildpath中add library中加入用户包。2.加入hibernate框架。(1)在user library中建原创 2015-11-26 09:44:19 · 209 阅读 · 0 评论