apple0668
TDD,Agile,Scrum,Core Java,J2EE,Investment Blank
BlogJava
首页
新随笔
聚合
管理
随笔-61 评论-159 文章-0 trackbacks-0
系统学习hibernate之十一:set、list、map、array集合
hibernate中的集合的使用还是比较多,跟普通的string、int等字段处理的方式不一样,下面介绍
set、list、map、array集合
在hibernate中的应用。
例子:
1、
CollectionMapping的POJO类
1
import
java.util.List;
2
import
java.util.Map;
3
import
java.util.Set;
4
5
public
class
CollectionMapping
{
6
private
int
id;
7
8
private
String name;
9
10
private
Set setValue;
11
12
private
List listValue;
13
14
private
String[] arrayValue;
15
16
private
Map mapValue;
17
//
省略setter、getter方法
18
}
2、
CollectionMapping.hbm.xml
映射文件
1
<?
xml version="1.0"
?>
2
<!
DOCTYPE hibernate-mapping PUBLIC
3
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
5
<
hibernate-mapping
package
="org.apple.hibernate"
>
6
<
class
name
="CollectionMapping"
table
="t_collectionMapping"
>
7
<
id
name
="id"
>
8
<
generator
class
="native"
/>
9
</
id
>
10
<
property
name
="name"
/>
11
<
set
name
="setValue"
table
="t_set_value"
>
12
<
key
column
="set_id"
/>
13
<
element
type
="string"
column
="set_value"
/>
14
</
set
>
15
<
list
name
="listValue"
table
="t_list_value"
>
16
<
key
column
="list_id"
/>
17
<
list-index
column
="list_index"
/>
18
<
element
type
="string"
column
="list_value"
/>
19
</
list
>
20
<
array
name
="arrayValue"
table
="t_array_value"
>
21
<
key
column
="array_id"
/>
22
<
list-index
column
="array_index"
/>
23
<
element
type
="string"
column
="array_value"
/>
24
</
array
>
25
<
map
name
="mapValue"
table
="t_map_value"
>
26
<
key
column
="map_id"
/>
27
<
map-key
type
="string"
column
="map_key"
/>
28
<
element
type
="string"
column
="map_value"
/>
29
</
map
>
30
</
class
>
31
</
hibernate-mapping
>
3、利用SchemaExport生成数据库表
mysql> desc t_array_value;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| array_id | int(11) | NO | PRI | | |
| array_value | varchar(255) | YES | | NULL | |
| array_index | int(11) | NO | PRI | | |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.03 sec)
mysql> desc t_array_value;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| array_id | int(11) | NO | PRI | | |
| array_value | varchar(255) | YES | | NULL | |
| array_index | int(11) | NO | PRI | | |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.03 sec)
mysql> desc t_list_value;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| list_id | int(11) | NO | PRI | | |
| list_value | varchar(255) | YES | | NULL | |
| list_index | int(11) | NO | PRI | | |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.03 sec)
mysql> desc t_map_value;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| map_id | int(11) | NO | PRI | | |
| map_value | varchar(255) | YES | | NULL | |
| map_key | varchar(255) | NO | PRI | | |
+-----------+--------------+------+-----+---------+-------+
3 rows in set (0.03 sec)
mysql> desc t_set_value;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| set_id | int(11) | NO | MUL | | |
| set_value | varchar(255) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
2 rows in set (0.03 sec)
4、测试方法:
1
public
void
testSave1()
2
{
3
Session session
=
null
;
4
CollectionMapping c
=
new
CollectionMapping();
5
6
c.setName(
"
xxx
"
);
7
8
Set setValue
=
new
HashSet();
9
setValue.add(
"
a
"
);
10
setValue.add(
"
b
"
);
11
c.setSetValue(setValue);
12
13
List listValue
=
new
ArrayList();
14
listValue.add(
"
c
"
);
15
listValue.add(
"
d
"
);
16
c.setListValue(listValue);
17
18
String[] arrayValue
=
new
String[]
{
"
e
"
,
"
f
"
}
;
19
c.setArrayValue(arrayValue);
20
21
Map mapValue
=
new
HashMap();
22
mapValue.put(
"
k1
"
,
"
v1
"
);
23
mapValue.put(
"
k2
"
,
"
v2
"
);
24
c.setMapValue(mapValue);
25
try
{
26
session
=
HibernateUtil.getSession();
27
session.beginTransaction();
28
session.save(c);
29
session.getTransaction().commit();
30
31
}
catch
(Exception e)
{
32
//
TODO: handle exception
33
session.beginTransaction().rollback();
34
}
finally
{
35
session.close();
36
}
37
}
-------------------------------------------------------------------------------------------------
PS:本博客文章,如果没有注明是有“转”字样,属于本人原创。如果需要转载,务必
注明作者
和
文章的详细出处地址
,否则不允许转载,多谢合作!
posted on 2008-10-26 13:16
apple0668
阅读(2232)
评论(2)
编辑
收藏
所属分类:
hibernate
评论:
#
re: 系统学习hibernate之十一:set、list、map、array集合 2008-10-26 23:09 |
wt
大哥!非常有用!谢谢喽!!!!
回复
更多评论
#
re: 系统学习hibernate之十一:set、list、map、array集合
2012-08-04 11:32 |
aderkayy
谢谢楼主的分享!
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
系统学习hibernate之十五:hibernate一级缓存
系统学习hibernate之十四:hibernate中HQL查询语言(二)
系统学习hibernate之十三:hibernate中HQL查询语言(一)
系统学习hibernate之十二:hibernate中悲观锁和乐观锁
系统学习hibernate之十一:set、list、map、array集合
系统学习hibernate之十:Component映射
系统学习hibernate之九:多对多关联映射(双向)
系统学习hibernate之八:多对多关联映射(单向)
系统学习hibernate之七:一对多单向关联
系统学习hibernate之六:一对一外键关联映射双向关联
Email:
chensp1230@163.com
欢迎交流
框架是告诉人们不该去做什么,而不是告诉人们该去做什么;容器是告诉人们该去做什么,而不是告诉人们不该去做什么!
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
留言簿
(10)
给我留言
查看公开留言
查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
Netbeans 爱好者(0/0)
随笔分类
(63)
Aglets(1)
drools(2)
eclipse(6)
groovy
hibernate(17)
java(7)
jboss
junit(3)
Log4(2)
MongoDB(1)
oracle(1)
spring(4)
struts2(8)
svn(1)
tomcat(4)
webwork(4)
web报表(1)
xml
心情港湾
集群(1)
随笔档案
(61)
2015年3月 (1)
2012年7月 (1)
2012年4月 (1)
2011年5月 (3)
2010年1月 (2)
2009年3月 (1)
2008年12月 (2)
2008年11月 (5)
2008年10月 (16)
2008年9月 (1)
2008年4月 (1)
2008年1月 (2)
2007年11月 (2)
2007年10月 (15)
2007年9月 (8)
友情链接
开源在线手册
最新随笔
1. Ehcache集群方案
2. MongoDB安装手记
3. 任何人都可以重构<转载>
4. JDK6中JWS自带webservice应用
5. 解决:Eclipse启动tomcat 访问不了 手动启动可以访问
6. IntelliJ Idea10 常用快捷键
7. Drools语法详解<转>
8. eclipse3.4安装drools插件手记
9. Java日期时间运算
10. java中使用功能强悍的正则表达式
搜索
最新评论
1. re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
非常感谢楼主分享,解决问题, Tomcat 7.0.59
--Gozs
2. re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记[未登录]
正解
--gao
3. re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
@123
已解决,谢谢提示myeclipse相关的有用信息~~
--sequoah
4. re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
赞 清空work文件夹就可以了
--维尼
5. re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
很好 问题解决了!
--兔兔
阅读排行榜
1. Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记(85512)
2. 系统学习hibernate之一:利用hibernate中的SchemaExport生成数据表(18631)
3. eclipse的第一个struts2插件:Alveole Studio MVC Web Project An eclipse plugin for Struts 2(15672)
4. Subversion之路---实现精细的目录访问权限控制<转>(11271)
5. IntelliJ Idea10 常用快捷键(9305)
评论排行榜
1. Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记(62)
2. eclipse的第一个struts2插件:Alveole Studio MVC Web Project An eclipse plugin for Struts 2(32)
3. Tomcat启动端口被占用异常处理(9)
4. 升级瑞星防火墙2008后,在myeclipse6.0中启动tomcat遇到怪问题!(7)
5. JDK6中JWS自带webservice应用(6)