package com.src.hibernate;
public class IdCard {
//id属性
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//卡号属性
private String cardNo;
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
//卡号对应的人
private Person person;
public Person getPerson(){
return person;
}
public void setPerson(Person person){
this.person=person;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2014-5-15 23:47:00 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.src.hibernate.IdCard" table="IDCARD">
<id name="id" type="int" column="personId">
<generator class="foreign">
<param name="property">person</param>
</generator>
</id>
<property name="cardNo" type="string" column="cardno"></property>
<one-to-one name="person" constrained="true"></one-to-one>
</class>
</hibernate-mapping>
package com.src.hibernate;
public class Person {
//id号
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//姓名
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//idCard
private IdCard idcard;
public IdCard getIdcard() {
return idcard;
}
public void setIdcard(IdCard idcard) {
this.idcard = idcard;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2014-5-15 23:47:00 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.src.hibernate.Person" table="PERSON">
<id name="id" type="int" column="personId">
<generator class="native"></generator>
</id>
<property name="name" type="string" column="personName"></property>
<!--
one-to-one标签指示Hibernate如何加载其关联对象,默认根据主键加载,也就是拿到关系字段值,根据对端的主键来加载关联对象
-->
<one-to-one name="idcard"></one-to-one>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_one2one_pk1</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">1234</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/src/hibernate/Person.hbm.xml"/>
<mapping resource="com/src/hibernate/IdCard.hbm.xml" ></mapping>
</session-factory>
</hibernate-configuration>
alter table IDCARD drop foreign key FK806F76ABAC038CD8 drop table if exists IDCARD drop table if exists PERSON create table IDCARD (personId integer not null, cardno varchar(255), primary key (personId)) create table PERSON (personId integer not null auto_increment, personName varchar(255), primary key (personId)) alter table IDCARD add index FK806F76ABAC038CD8 (personId), add constraint FK806F76ABAC038CD8 foreign key (personId) references PERSON (personId)
public void testSave1(){
Session session=null;
try{
//创建一个会话对象
session=HibernateUtils.getSession();
//开启会话事务
session.beginTransaction();
//创建person对象,并保存
Person person=new Person();
person.setName("zhangsan");
session.save(person);
//创建idCard对象,并保存
IdCard idcard=new IdCard();
idcard.setCardNo("1111111111111");
idcard.setPerson(person);
session.save(idcard);
//提交事务,修改数据库
session.getTransaction().commit();
}catch(Exception e){
//打印错误信息
e.printStackTrace();
//业务回滚
session.getTransaction().rollback();
}finally{
//关闭会话
HibernateUtils.closeSession(session);
}
}
public void testLoad1(){
Session session=null;
try{
//创建一个会话对象
session=HibernateUtils.getSession();
//开启会话事务
session.beginTransaction();
//获取person对象,并保存
Person person=(Person)session.load(Person.class,5);
System.out.println("IdCard.Id: "+person.getIdcard().getId());
System.out.println("IdCard.cardno: "+person.getIdcard().getCardNo());
//创建idCard对象,并保存
IdCard idcard=(IdCard)session.load(IdCard.class, 5);
System.out.println("Person.Id: "+idcard.getPerson().getId());
System.out.println("Person.name: "+idcard.getPerson().getName());
//提交事务,修改数据库
session.getTransaction().commit();
}catch(Exception e){
//打印错误信息
e.printStackTrace();
//业务回滚
session.getTransaction().rollback();
}finally{
//关闭会话
HibernateUtils.closeSession(session);
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2014-5-18 22:27:43 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.src.hibernate.IdCard" table="IDCARD">
<id name="id" type="int">
<generator class="native" />
</id>
<property name="cardNo" type="java.lang.String">
<column name="CARDNO" />
</property>
<one-to-one name="person" property-ref="idCard"></one-to-one>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2014-5-18 22:27:43 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.src.hibernate.Person" table="PERSON">
<id name="id" type="int" column="personId">
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<many-to-one name="idCard" column="idCardNo" unique="true" not-null="true"></many-to-one>
</class>
</hibernate-mapping>
alter table PERSON drop foreign key FK8C768F55794A52CA drop table if exists IDCARD drop table if exists PERSON create table IDCARD (id integer not null auto_increment, CARDNO varchar(255), primary key (id)) create table PERSON (personId integer not null auto_increment, NAME varchar(255), idCardNo integer not null unique, primary key (personId)) alter table PERSON add index FK8C768F55794A52CA (idCardNo), add constraint FK8C768F55794A52CA foreign key (idCardNo) references IDCARD (id)
//加载对象,使用IdCard对象装载person对象
public void testLoad1(){
Session session=null;
try{
session=HibernateUtils.getSession();
session.beginTransaction();
//获取IdCard对象,在IdCard中获取与该对象唯一关联的person对象
IdCard idcard=(IdCard)session.load(IdCard.class,1);
System.out.println("person.Id= "+idcard.getPerson().getId());
System.out.println("idCard.person.name= "+idcard.getPerson().getName());
//获取Person对象,在Person对象中获取与它唯一关联的IdCard对象
Person person=(Person)session.load(Person.class,1);
System.out.println("idCard.id: "+person.getIdCard().getId());
System.out.println("idCard.cardNo: "+person.getIdCard().getCardNo());
//提交事务
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有