首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一对一外键双向联系关系

2012-10-17 
一对一外键双向关联--oracle数据库//idcard表里面有个pid ,因为有了人才会有身份证。有个先后顺序吧。1,建表

一对一外键双向关联

--oracle数据库

//idcard表里面有个pid ,因为有了人才会有身份证。有个先后顺序吧。

1,建表脚本

-- 删除表
DROP TABLE person ;
DROP TABLE idcard ;

-- 创建表


CREATE TABLE person
(
?pid VARCHAR(32) PRIMARY KEY NOT NULL,
?name VARCHAR(20)
) ;

CREATE TABLE idcard
(
?id VARCHAR(32) PRIMARY KEY NOT NULL ,
?name VARCHAR(20) NOT NULL ,
?age INT ,
?pid VARCHAR(32)
) ;

commit ;

?

2、#############################??? pojo类

//<1>IdCard 类

?

package org.onetoone4.com;

public class IdCard {
?private String id ;
?private String name ;
?private int age;
?private Person person ;
?
?public String getId() {
??return id;
?}
?public void setId(String id) {
??this.id = id;
?}
?public String getName() {
??return name;
?}
?public void setName(String name) {
??this.name = name;
?}
?public int getAge() {
??return age;
?}
?public void setAge(int age) {
??this.age = age;
?}
?public Person getPerson() {
??return person;
?}
?public void setPerson(Person person) {
??this.person = person;
?}

}

//<2>Person 类

?

package org.onetoone4.com;

public class Person {
?private String pid;
?private String name;
?
?private IdCard idcard;

?public String getPid() {
??return pid;
?}

?public void setPid(String pid) {
??this.pid = pid;
?}

?public String getName() {
??return name;
?}

?public void setName(String name) {
??this.name = name;
?}

?public IdCard getIdcard() {
??return idcard;
?}

?public void setIdcard(IdCard idcard) {
??this.idcard = idcard;
?}

}

3、pojo对应的hibernate配置文件

<1>IdCard.hbm.xml

?

<hibernate-mapping>
?<class name="org.onetoone4.com.Person" table="person">
??<id name="pid" type="java.lang.String">
???<column name="pid" length="32" />
???<generator type="java.lang.String">
???<column name="name" length="20" not-null="true" />
??</property>
??<one-to-one name="idcard"
???property-ref="person">
??</one-to-one>
?</class>
</hibernate-mapping>

?

4、测试类 PersonGroupOperate

?

public class PersonGroupOperate {
?private Session session;

?public PersonGroupOperate() {
??this.session = new Configuration().configure().buildSessionFactory()
????.openSession();
?}

?public void insert(IdCard ic) {
??this.session.save(ic);
??this.session.beginTransaction().commit();
?}
?
?public void insert(Person per) {
??this.session.save(per);
??this.session.beginTransaction().commit();
?}

?

?/**
? * @param args
? */
?public static void main(String[] args) {
??PersonGroupOperate pgo = new PersonGroupOperate();
??

??

??Person per = new Person();
??per.setName("LXH");
?

??IdCard ic = new IdCard();
??ic.setName("MLDN.GUEST");
??ic.setAge(25);
??
??
??ic.setPerson(per);
??per.setIdcard(ic);
??
??pgo.insert(per);
??pgo.insert(ic) ;
??
?}

}

热点排行