*设为首页
*加入收藏
网站导航
>>
首页
┊
业界新闻
┊
语言基础
┊
环境配置
┊
数据库应用
┊
J2EE
┊
J2ME
┊
JAVA代码
┊
认证考试
┊
实用技巧
热门关键字:
JAVA
智能
标题
>>当前位置:
Java大本营
>
JAVA与XML
>文章内容
hibernate3学习笔记(十九)|关系映射:一对一
作者: 发布时间:2008-09-03 18:50:47
A.唯一外键关联
DDL:
CREATE TABLE user (
id INT(11) NOT NULL auto_increment PRIMARY KEY,
name VARCHAR(100) NOT NULL default '',
room_id INT(11)
);
CREATE TABLE room (
id INT(11) NOT NULL auto_increment PRIMARY KEY,
address VARCHAR(100) NOT NULL default ''
);
User.java
package com.hb3.pack_02.model;
public
class
User {
private
Integer id;
private
String name;
private
Room room;
public
User() {
}
public
Integer getId() {
return
id;
}
public
void
setId(Integer id) {
this
.id = id;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
public
Room getRoom() {
return
room;
}
public
void
setRoom(Room room) {
this
.room = room;
}
}
Room.java
package
com.hb3.pack_02.model;
public
class
Room {
private
Integer id;
private
String address;
private
User user;
public
Room() {
}
public
Integer getId() {
return
id;
}
public
void
setId(Integer id) {
this
.id = id;
}
public
String getAddress() {
return
address;
}
public
void
setAddress(String address) {
this
.address = address;
}
public
User getUser() {
return
user;
}
public
void
setUser(User user) {
this
.user = user;
}
}
User.hbm.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<
hibernate-mapping
>
<
class
name
=
"com.hb3.pack_02.model.User"
table
=
"user"
>
<
id
name
=
"id"
column
=
"id"
type
=
"java.lang.Integer"
>
<
generator
class
=
"native"
/>
</
id
>
<
property
name
=
"name"
column
=
"name"
type
=
"java.lang.String"
/>
<
many-to-one
name
=
"room"
column
=
"room_id"
class
=
"com.hb3.pack_02.model.Room"
cascade
=
"all"
outer-join
=
"true"
unique
=
"true"
/>
</
class
>
</
hibernate-mapping
>
Room.hbm.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<
hibernate-mapping
>
<
class
name
=
"com.hb3.pack_02.model.Room"
table
=
"room"
>
<
id
name
=
"id"
column
=
"id"
>
<
generator
class
=
"native"
/>
</
id
>
<
property
name
=
"address"
column
=
"address"
type
=
"java.lang.String"
/>
<
one-to-one
name
=
"user"
class
=
"com.hb3.pack_02.model.User"
property-ref
=
"room"
/>
</
class
>
</
hibernate-mapping
>
测试代码:
package
com.hb3.pack_02;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
import
org.hibernate.cfg.Configuration;
import
com.hb3.pack_02.model.Room;
import
com.hb3.pack_02.model.User;
public
class
BusinessService {
public
static
void
main(String[] args) {
Configuration config =
new
Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
User user1 =
new
User();
user1.setName(
"shenbin"
);
Room room1 =
new
Room();
room1.setAddress(
"NTU-M8-419"
);
user1.setRoom(room1);
User user2 =
new
User();
user2.setName(
"chanyan"
);
Room room2 =
new
Room();
room2.setAddress(
"NTU-M8-418"
);
user2.setRoom(room2);
Transaction tx = session.beginTransaction();
session.save(user1);
session.save(user2);
tx.commit();
Room room = (Room) session.load(Room.
class
,
new
Integer(
1
));
System.out.println(room.getUser().getName());
session.close();
sessionFactory.close();
}
}
A.主键关联
DDL:
CREATE TABLE user (
id INT(11) NOT NULL auto_increment PRIMARY KEY,
name VARCHAR(100) NOT NULL default ''
);
CREATE TABLE room (
id INT(11) NOT NULL auto_increment PRIMARY KEY,
address VARCHAR(100) NOT NULL default ''
);
Room和User类同上。
Room.hbm.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<
hibernate-mapping
>
<
class
name
=
"com.hb3.pack_18.model.Room"
table
=
"room"
>
<
id
name
=
"id"
column
=
"id"
>
<
generator
class
=
"foreign"
>
<
param
name
=
"property"
>
user
</
param
>
</
generator
>
</
id
>
<
property
name
=
"address"
column
=
"address"
type
=
"java.lang.String"
/>
<
one-to-one
name
=
"user"
class
=
"com.hb3.pack_18.model.User"
constrained
=
"true"
/>
</
class
>
</
hibernate-mapping
>
User.hbm.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<
hibernate-mapping
>
<
class
name
=
"com.hb3.pack_18.model.User"
table
=
"user"
>
<
id
name
=
"id"
column
=
"id"
type
=
"java.lang.Integer"
>
<
generator
class
=
"native"
/>
</
id
>
<
property
name
=
"name"
column
=
"name"
type
=
"java.lang.String"
/>
<
one-to-one
name
=
"room"
class
=
"com.hb3.pack_18.model.Room"
cascade
=
"all"
/>
</
class
>
</
hibernate-mapping
>
测试代码:
package
com.hb3.pack_18;
import
java.io.IOException;
import
java.sql.SQLException;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
import
org.hibernate.cfg.Configuration;
import
com.hb3.pack_18.model.Room;
import
com.hb3.pack_18.model.User;
public
class
BusinessService {
public
static
void
main(String[] args)
throws
IOException, SQLException {
Configuration config =
new
Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
User user1 =
new
User();
user1.setName(
"chanyan"
);
Room room1 =
new
Room();
room1.setAddress(
"NTU-M8-419"
);
user1.setRoom(room1);
room1.setUser(user1);
User user2 =
new
User();
user2.setName(
"shenbin"
);
Room room2 =
new
Room();
room2.setAddress(
"NTU-M8-418"
);
user2.setRoom(room2);
room2.setUser(user2);
Transaction tx = session.beginTransaction();
session.save(user1);
session.save(user2);
tx.commit();
session.close();
sessionFactory.close();
}
}
·
hibernate3学习笔记(二十)|关系映射
(09-03)
·
初探quartz scheduler
(09-03)
·
mysql数据库用jsp生成xml文件
(09-02)
·
Java中四种XML解析技术
(05-21)
·
XML解析技术
(03-20)
·
java中用dom解析xml
(02-02)
·
如何用Java实现基于XML的购物车
(01-21)
·
JavaBeans至XML的相互转换
(01-20)
·
XML: XSL
(01-19)
·
xml的转换之pdf (xml+xsl 2 pdf)
(01-09)
·
XML安全相关
(01-09)
·
xml的转换之html
(01-09)
复制地址发给您的好友:
[
推荐文章
]
[返回顶部]
[关闭窗口]
版权所有
Java大本营
1999-2007 转载请注明出处