14-hibernate实战 一对一对象关系模型映射(公民和身份证)
来源:互联网 发布:淘宝服装手机拍摄技巧 编辑:程序博客网 时间:2024/05/16 00:32
Person.java
package cn.itcast.hibernate.domain;public class Person {private int id;private String name;private IdCard idCard;public int getId() {return id;}public void setId(int id) {this.id = id;}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;}}
Person.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.hibernate.domain"><class name="Person"><id name="id"><generator class="native" /></id><property name="name" /><one-to-one name="idCard"></one-to-one></class></hibernate-mapping>
IdCard.java
package cn.itcast.hibernate.domain;import java.util.Date;public class IdCard {private int id;private Date usefulLife;private Person person;public int getId() {return id;}public void setId(int id) {this.id = id;}public Date getUsefulLife() {return usefulLife;}public void setUsefulLife(Date usefulLife) {this.usefulLife = usefulLife;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}
IdCard.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.hibernate.domain"><class name="IdCard" table="id_card" ><id name="id"><generator class="foreign"><param name="property">person</param></generator></id><property name="usefulLife" column="useful_life"/><one-to-one name="person" constrained="true"/></class></hibernate-mapping>
One2One.java
package cn.itcast.hibernate;import java.util.Date;import org.hibernate.Session;import org.hibernate.Transaction;import cn.itcast.hibernate.domain.IdCard;import cn.itcast.hibernate.domain.Person;public class One2One {public static void main(String[] args) {add();query(1);}// 查询static void query(int personId) {Session session = null;Transaction transaction = null;try {session = HibernateUtil.getSession();transaction = session.beginTransaction();//查询主对象时候执行一次SQL语句/*Person person=(Person) session.get(Person.class, personId);System.out.println(person.getIdCard().getUsefulLife());*/System.out.println("****************************************************************");//查询从对象的时候执行的2次SQL语句IdCard idCard=(IdCard) session.get(IdCard.class, personId);System.out.println(idCard.getPerson().getName());transaction.commit();} finally {if (session != null)session.close();}}// 添加static Person add() {Session session = null;Transaction transaction = null;try {session = HibernateUtil.getSession();transaction = session.beginTransaction();IdCard idCard = new IdCard();idCard.setUsefulLife(new Date());// 在这里,person是主对象,IdCard是从对象// IdCard的主键既是主键,也是外键Person person = new Person();person.setName("p1");person.setIdCard(idCard);idCard.setPerson(person);session.save(person);session.save(idCard);transaction.commit();return person;} finally {if (session != null)session.close();}}}
sql
Hibernate: insert into Person (name) values (?)Hibernate: insert into id_card (useful_life, id) values (?, ?)****************************************************************Hibernate: select idcard0_.id as id3_0_, idcard0_.useful_life as useful2_3_0_ from id_card idcard0_ where idcard0_.id=?Hibernate: select person0_.id as id4_1_, person0_.name as name4_1_, idcard1_.id as id3_0_, idcard1_.useful_life as useful2_3_0_ from Person person0_ left outer join id_card idcard1_ on person0_.id=idcard1_.id where person0_.id=?p1
0 0
- 14-hibernate实战 一对一对象关系模型映射(公民和身份证)
- Hibernate对象关系映射---一对一
- Hibernate对象关系映射---一对一
- hibernate对象关系映射(一对一,…
- 13-hibernate 实战 一对多对象关系模型映射
- Hibernate关系映射一对一
- hibernate 映射关系 一对一
- hibernate关系映射 一对一
- Hibernate一对一关系映射
- Hibernate一对一关系映射
- hibernate一对一映射关系
- Hibernate关系映射一对一
- hibernate映射关系一对一映射
- Hibernate入门BLOG[七、Hibernate对象关系一对一映射]
- Hibernate之对象关系映射01一对一单向关联
- Hibernate之对象关系映射02一对一单向主键关联
- Hibernate之对象关系映射04一对一双向关联
- Hibernate之对象关系映射05一对一双向主键关联
- 关于网卡的一些知识
- keil MDK 安装环境搭建
- 如何反编译apk文件得到源码和XML文件
- ubuntu默认root密码
- Oracle 分析函数详解(Analytic Functions)--示例部分
- 14-hibernate实战 一对一对象关系模型映射(公民和身份证)
- oracle常用函数
- 关于产品的一些思考——小米之玩机手册
- 自学Linux命令的四种方法
- DEV Gridcontrol 格式化显示数据
- 使用plist(属性列表)实现数据读写
- 深入理解Java中为什么内部类可以访问外部类的成员
- Ganymed SSH-2 for Java
- poj 3268--Silver Cow Party