hibernate基础_5
2005-05-17 10:45
411 查看
这次放上的是三个映射:list,map,set
之所以把这三个映射放在同一篇里,是因为它们有很多相同点。比如,它们的类中都有相应的字段来存储多于一个的同类信息;它们的描述符中类似字段的描述相近;用来存储的table都是分为两个等……
好,下面详细介绍各个映射的方法
list
list映射持久类的形式如下
public class UploadUser_2{
private int id;
private String name;
private List files = new ArrayList();
}
在这里,我们使用一个table来存储user的信息,用另一个table来存储files,两个table通过user的id来联接。
通过files,我们可以为一个user存储多个文件,当然,这是有前提的。addFiles方法是这样的
public void addFiles(int index, String name) {
files.add(index, name);
}
我们可以通过一般形式的setFiles(*)对files进行存储,也可以通过user.getFiles().addFiles(*,*)来设置files的内容。两种方法的效果是相同的,前一个方法只是增加了一个引用。
关键的描述符来了。在UploadUser_2.hbm.xml中,有关list的内容如下
<list name= "files" table= "uploadfile_2" >
<key column= "user_id" />
<index column= "idx" type= "integer" />
<element column= "filename" type= "string" not-null= "true" />
</list >
相信,这段代码是很容易看明白的吧。table指明了files存储的地方。key表示该table通过user_id与user的table的主键相联系。
map
map映射持久类的形式如下
public class UploadUser {
private int id;
private String name;
private Map files = new HashMap();
}
其他的详细描述同list映射。但是,须注意,map里面不允许同一个key对应多个value。
同样,我们也提供了额外的addFiles方法
public void addFiles(String name, String des) {
files.put(name, des);
}
因此,这里也有两种设置files的办法。
相应的描述如下
<map name= "files" table= "uploadfile" >
<key column= "user_id" />
<index column= "filename" type= "string" />
<element column= "filedes" type= "string" not-null= "false" />
</map>
这里就不再详述了。
set
set映射持久类的形式如下
public class UploadUser_3 {
private int id;
private String name;
private Set files = new HashSet();
}
限于Set类的方法,我们提供的addFiles方法有别于前两个映射
public void addFiles(String fname) {
files.add(fname);
}
它只有一个参数。但是注意,相同的fname只能被存储一次,这是由Set的特性决定的
相应的描述符内容也较前两个映射小
<set name= "files" table= "uploadfile_3" >
<key column= "USER_ID" />
<element type= "string" column= "FILEDES" not-null= "true" />
</set>
好了,到此三种映射都已经介绍完毕。客户段中,我们只要创建相应的类并调用session.save(*)就可以了。存储当然也是采取联级,为几种映射的默认存储方法。
之所以把这三个映射放在同一篇里,是因为它们有很多相同点。比如,它们的类中都有相应的字段来存储多于一个的同类信息;它们的描述符中类似字段的描述相近;用来存储的table都是分为两个等……
好,下面详细介绍各个映射的方法
list
list映射持久类的形式如下
public class UploadUser_2{
private int id;
private String name;
private List files = new ArrayList();
}
在这里,我们使用一个table来存储user的信息,用另一个table来存储files,两个table通过user的id来联接。
通过files,我们可以为一个user存储多个文件,当然,这是有前提的。addFiles方法是这样的
public void addFiles(int index, String name) {
files.add(index, name);
}
我们可以通过一般形式的setFiles(*)对files进行存储,也可以通过user.getFiles().addFiles(*,*)来设置files的内容。两种方法的效果是相同的,前一个方法只是增加了一个引用。
关键的描述符来了。在UploadUser_2.hbm.xml中,有关list的内容如下
<list name= "files" table= "uploadfile_2" >
<key column= "user_id" />
<index column= "idx" type= "integer" />
<element column= "filename" type= "string" not-null= "true" />
</list >
相信,这段代码是很容易看明白的吧。table指明了files存储的地方。key表示该table通过user_id与user的table的主键相联系。
map
map映射持久类的形式如下
public class UploadUser {
private int id;
private String name;
private Map files = new HashMap();
}
其他的详细描述同list映射。但是,须注意,map里面不允许同一个key对应多个value。
同样,我们也提供了额外的addFiles方法
public void addFiles(String name, String des) {
files.put(name, des);
}
因此,这里也有两种设置files的办法。
相应的描述如下
<map name= "files" table= "uploadfile" >
<key column= "user_id" />
<index column= "filename" type= "string" />
<element column= "filedes" type= "string" not-null= "false" />
</map>
这里就不再详述了。
set
set映射持久类的形式如下
public class UploadUser_3 {
private int id;
private String name;
private Set files = new HashSet();
}
限于Set类的方法,我们提供的addFiles方法有别于前两个映射
public void addFiles(String fname) {
files.add(fname);
}
它只有一个参数。但是注意,相同的fname只能被存储一次,这是由Set的特性决定的
相应的描述符内容也较前两个映射小
<set name= "files" table= "uploadfile_3" >
<key column= "USER_ID" />
<element type= "string" column= "FILEDES" not-null= "true" />
</set>
好了,到此三种映射都已经介绍完毕。客户段中,我们只要创建相应的类并调用session.save(*)就可以了。存储当然也是采取联级,为几种映射的默认存储方法。
相关文章推荐
- Hibernate基础学习笔记
- 构建基础的SpringMVC+Hibernate+SpringloC项目
- Hibernate(基础一) Hibernate3的动态条件查询DetachedCriteria用法
- Hibernate基础教程(4)
- hibernate基础知识总结2--持久化概念
- 基础图解 Hibernate
- hibernate基础知识一
- Hibernate入门——基础详解
- 1、Hibernate基础
- 1、Hibernate基础
- 1、Hibernate基础
- hibernate的基础学习--多表关联数据查询
- Hibernate基础:快速入门(5):删除数据
- spring+hibernate基础
- 初识hibernate——基础与核心
- Hibernate基础-插入数据
- Hibernate 基础( 1 ) 基本流程
- Hibernate基础学习(八)—8888888
- hibernate入门基础
- Hibernate 基础配置及常用功能(一)