- 浏览: 203675 次
- 性别:
- 来自: 成都
最新评论
-
liouyan9:
jiangshiwei2008 写道老是提醒Servlet s ...
spring-mvc入门(一):入门实例 -
hochoy:
...
spring-mvc入门(二):后端控制器(上) -
springmvc_springjpa:
spring mvc demo教程源代码下载,地址:http: ...
spring-mvc入门(一):入门实例 -
yahier:
想问,不在代码中去try catch的话 log4j怎么记录项 ...
SSH集成log4j日志环境 -
13_木木:
谢谢分享,明白了很多
spring-mvc入门(一):入门实例
文章列表
九、关联关系中的高级应用
1.级联操作:
在前面的一对多操作中已经有所体现,现在回到前面的一对多操作中,进行一些修改,修改内容如下:
Set<Employee> emps = new HashSet<Employee>();
emps.add(emp1);
emps.add(emp2);
depart.setEmp ...
- 2009-10-17 16:59
- 浏览 1300
- 评论(0)
八、其它集合类型
说明:在前面我们已经使用过set集合类型,其实除了set外,在Hibernate中还有list、Bag、Map这三种集合类型。
1. list集合的使用:
在前面的“一对多的关系”,已经使用过<set>,为了保存以前的操作,现重建一个名为“TheCollectionMapping”的新项目,把以前的“一对多关系”中用到的相关内容复制到此项目下即可。但有几点需要特别注意:(1)同样注意导入包,并注意主配置文件对实体配置文件的关联 (2)需要修改原Department中的<set>内容为:private List<Employee> ...
- 2009-10-17 16:58
- 浏览 1273
- 评论(2)
5.组件关系映射:
典型实例:每个人有不同的名字,或者多个人可以是同一个名字,对于这种现象可以是“一个一”或者“多对一”,这样会被设计成两张表来映射,而我们采用组件关系来映射就可以在一张表中映射实现。具体过程如下:
>>步骤一、编写实体文件Name.java 和People.java
Name.java内容如下: 省略getXXX和setXXX()
package com.asm.hibernate.domain;
public class Name {
private String firstName;
private String secondName;
} ...
- 2009-10-06 13:02
- 浏览 1244
- 评论(0)
4.多对多关系映射:
典型实例:一个学生可以有多个老师,同样一个老师可以有多个学生,对此设计如下:
学生studnet表:
column
id
name
teachers
老师teacher表:
- 2009-10-03 12:38
- 浏览 1504
- 评论(0)
3.一对一关系映射:
典型的实例:一个人有一个身份证,而一个身份证只属于某一个人。以此为模型实现一对一关系的映射。下面的实例先以主键进行关联:
主键关联:从表的主键同时又作为外键参考主表的主键。比如在下面的实例中,人作为主表,身份证作为从表。
>>步骤一,建立Person类及相关的实体配置文件。
package com.asm.hibernate.domain;
public class Person {
private int id;
private String name;
private IdCard idCard;
...省略相应的get/s ...
- 2009-10-03 12:33
- 浏览 1601
- 评论(0)
2.一对多关系映射:
上面提到的多个员工对应于一个部门,是多对一的关系,如果一个部门有多个员工,则用“一对多”的关系来表示这个关系,现接上例继续,以实现一对多的关系映射。具体操作步骤如下:
>>步骤一,在Department.java中增加如下内容:private Set<Employee> emps; 及相应的get/set方法。
>>步骤二,修改Department的实体配置文件。在class元素下增加如下内容:
<set name="emps">
<key column
- 2009-10-03 05:21
- 浏览 1282
- 评论(0)
七 关联关系讨论
1.多对一关系映射:
一个部门有可以有多个员工,而一个员工只属于一个部门。从员工角度看,很多员工会隶属一个部门。 现以实例说明,实例概要:一个部门类,只有id和部门名称两个属性。有一个员工类,有id和员工名称及部门对象三个属性。操作步骤如下:
>>步骤一,建立Depatment.java及实体配置文件:
package com.asm.hibernate.domain;
public class Department {
private int id ;
private String name;
public ...
- 2009-10-03 05:19
- 浏览 1460
- 评论(3)
五 完善工具类及HQL QBC初步相关1.无聊的讨论:
在前面我们写了一个工具类:HibernateUtil。其实我们还可以把CRUD操作封装到这个工具类中,并把它们都做成静态的,这样这个工具类就可以直接调用了。但是这样的操作对查询数据可能不是很好,因为它的查询方式很多,除非我们一一考虑这些可能涉及到查询方式,并能以重载的形式进行统一管理。其实我也试想过把这此数据库操作方法进行二次封装,在工具类写成如下形式:public void operate(int i ){
if(i==1){ 调用更新方法,执行查询操作}
if(i==2){ 调用删除方法,执行查询操作}
...
- 2009-10-03 05:08
- 浏览 2146
- 评论(0)
三 Session中的主要方法
1.保存数据:save,presist 说明:这两种方法的主要区别主要体现在未开启事务时。save方法如果是没开启事务,会执行相关sql语句,随后再回滚。而presist根本就不执行这些sql语句。
2.删除对象:delete
3. ...
- 2009-10-03 05:06
- 浏览 1831
- 评论(0)
二 优化代码
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 ...
- 2009-10-03 04:58
- 浏览 1412
- 评论(3)
一 第一个应用实例
1.搭建环境:新建一个名为HibernateDemo的java工程,并导入Hibernate的jar包,特别要注意除了导入lib下的jar包还需导入hibernate3.jar核心jar包。 由于涉及数据库操作,还应导入mysql驱动包。
2.简述Hibernate的作用:ORM:Object Relational Mapping,对象关系映射。将java程序中的对象自动持久化到关系数据库中。而Hibernate的作用好比就是在java对象与关系数据库之间的一座桥梁,它主要负责两者之间的映射。在Hibernate内部封装了JDBC技术(但只是一个轻量级的封装,因而可以让程 ...
- 2009-10-03 04:48
- 浏览 1727
- 评论(3)