`
86asm
  • 浏览: 199808 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
文章列表
九、关联关系中的高级应用 1.级联操作: 在前面的一对多操作中已经有所体现,现在回到前面的一对多操作中,进行一些修改,修改内容如下: Set<Employee> emps = new HashSet<Employee>(); emps.add(emp1); emps.add(emp2); depart.setEmp ...
八、其它集合类型 说明:在前面我们已经使用过set集合类型,其实除了set外,在Hibernate中还有list、Bag、Map这三种集合类型。 1.    list集合的使用: 在前面的“一对多的关系”,已经使用过<set>,为了保存以前的操作,现重建一个名为“TheCollectionMapping”的新项目,把以前的“一对多关系”中用到的相关内容复制到此项目下即可。但有几点需要特别注意:(1)同样注意导入包,并注意主配置文件对实体配置文件的关联 (2)需要修改原Department中的<set>内容为:private List<Employee> ...
5.组件关系映射: 典型实例:每个人有不同的名字,或者多个人可以是同一个名字,对于这种现象可以是“一个一”或者“多对一”,这样会被设计成两张表来映射,而我们采用组件关系来映射就可以在一张表中映射实现。具体过程如下: >>步骤一、编写实体文件Name.java 和People.java Name.java内容如下: 省略getXXX和setXXX() package com.asm.hibernate.domain; public class Name { private String firstName; private String secondName; } ...
4.多对多关系映射: 典型实例:一个学生可以有多个老师,同样一个老师可以有多个学生,对此设计如下: 学生studnet表: column id name teachers 老师teacher表:
3.一对一关系映射: 典型的实例:一个人有一个身份证,而一个身份证只属于某一个人。以此为模型实现一对一关系的映射。下面的实例先以主键进行关联: 主键关联:从表的主键同时又作为外键参考主表的主键。比如在下面的实例中,人作为主表,身份证作为从表。 >>步骤一,建立Person类及相关的实体配置文件。 package com.asm.hibernate.domain; public class Person { private int id; private String name; private IdCard idCard; ...省略相应的get/s ...
2.一对多关系映射: 上面提到的多个员工对应于一个部门,是多对一的关系,如果一个部门有多个员工,则用“一对多”的关系来表示这个关系,现接上例继续,以实现一对多的关系映射。具体操作步骤如下: >>步骤一,在Department.java中增加如下内容:private Set<Employee> emps; 及相应的get/set方法。 >>步骤二,修改Department的实体配置文件。在class元素下增加如下内容: <set name="emps">            <key column
 七 关联关系讨论     1.多对一关系映射: 一个部门有可以有多个员工,而一个员工只属于一个部门。从员工角度看,很多员工会隶属一个部门。 现以实例说明,实例概要:一个部门类,只有id和部门名称两个属性。有一个员工类,有id和员工名称及部门对象三个属性。操作步骤如下: >>步骤一,建立Depatment.java及实体配置文件:   package com.asm.hibernate.domain; public class Department { private int id ; private String name; public ...
五 完善工具类及HQL QBC初步相关1.无聊的讨论: 在前面我们写了一个工具类:HibernateUtil。其实我们还可以把CRUD操作封装到这个工具类中,并把它们都做成静态的,这样这个工具类就可以直接调用了。但是这样的操作对查询数据可能不是很好,因为它的查询方式很多,除非我们一一考虑这些可能涉及到查询方式,并能以重载的形式进行统一管理。其实我也试想过把这此数据库操作方法进行二次封装,在工具类写成如下形式:public void operate(int i ){     if(i==1){ 调用更新方法,执行查询操作}     if(i==2){ 调用删除方法,执行查询操作}     ...
三 Session中的主要方法 1.保存数据:save,presist 说明:这两种方法的主要区别主要体现在未开启事务时。save方法如果是没开启事务,会执行相关sql语句,随后再回滚。而presist根本就不执行这些sql语句。 2.删除对象:delete 3. ...
二 优化代码 1.为会么要优化 在前面我们已经知道,获取SessionFactory对象是一个重复的过程。因此我们可以把这个操作写成一Util类。下面我们把这一步写成工具类HibernateUtil,内容如下:    package com.asm.hibernate.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private s ...
一 第一个应用实例 1.搭建环境:新建一个名为HibernateDemo的java工程,并导入Hibernate的jar包,特别要注意除了导入lib下的jar包还需导入hibernate3.jar核心jar包。 由于涉及数据库操作,还应导入mysql驱动包。 2.简述Hibernate的作用:ORM:Object Relational Mapping,对象关系映射。将java程序中的对象自动持久化到关系数据库中。而Hibernate的作用好比就是在java对象与关系数据库之间的一座桥梁,它主要负责两者之间的映射。在Hibernate内部封装了JDBC技术(但只是一个轻量级的封装,因而可以让程 ...
Global site tag (gtag.js) - Google Analytics