hibernate一对一外键映射--iteye技术网站
2011年08月01日
person作为IdCard的一个外键
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; } }
IdCard
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 Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public Date getUsefullife() { return usefullife; } public void setUsefullife(Date usefullife) { this.usefullife = usefullife; } }
JavaBean映射文件1(Person.hbm.xml)
JavaBean映射文件2(IdCard.hbm.xml)
Hibernate配置文件(hibernate.cfg.xml)
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test root 123456 1 org.hibernate.dialect.MySQLDialect true create
One2One.java用来使用映射
package cn.itcast.hibernate; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.Transaction; import cn.itcast.hibernate.domain.Department; import cn.itcast.hibernate.domain.Employee; import cn.itcast.hibernate.domain.IdCard; import cn.itcast.hibernate.domain.Person; public class One2One { /** * @param args */ public static void main(String[] args) { add(); queryPerson(1); // queryIdCard(1); } static Person queryPerson(int id){ Session s= null; Transaction tx = null; try { s=HibernateUtil.getSession(); tx= s.beginTransaction(); Person person=(Person)s.get(Person.class, id); System.out.println(person.getIdcard().getUsefullif e()); tx.commit(); return person; }finally{ if(s!=null){ s.close(); } } } static IdCard queryIdCard(int id){ Session s= null; Transaction tx = null; try { s=HibernateUtil.getSession(); tx= s.beginTransaction(); IdCard idCard=(IdCard)s.get(IdCard.class, id); System.out.println(idCard.getPerson().getName()); tx.commit(); return idCard; }finally{ if(s!=null){ s.close(); } } } static Person add(){ Session s= null; Transaction tx = null; try { s=HibernateUtil.getSession(); tx= s.beginTransaction(); IdCard idcard = new IdCard(); idcard.setUsefullife(new Date()); Person person = new Person(); person.setName("personname1"); person.setIdcard(idcard); idcard.setPerson(person); s.save(person); s.save(idcard); tx.commit(); return person; }finally{ if(s!=null){ s.close(); } } } }
2011年08月01日
person作为IdCard的一个外键
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; } }
IdCard
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 Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public Date getUsefullife() { return usefullife; } public void setUsefullife(Date usefullife) { this.usefullife = usefullife; } }
JavaBean映射文件1(Person.hbm.xml)
JavaBean映射文件2(IdCard.hbm.xml)
Hibernate配置文件(hibernate.cfg.xml)
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test root 123456 1 org.hibernate.dialect.MySQLDialect true create
One2One.java用来使用映射
package cn.itcast.hibernate; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.Transaction; import cn.itcast.hibernate.domain.Department; import cn.itcast.hibernate.domain.Employee; import cn.itcast.hibernate.domain.IdCard; import cn.itcast.hibernate.domain.Person; public class One2One { /** * @param args */ public static void main(String[] args) { add(); queryPerson(1); // queryIdCard(1); } static Person queryPerson(int id){ Session s= null; Transaction tx = null; try { s=HibernateUtil.getSession(); tx= s.beginTransaction(); Person person=(Person)s.get(Person.class, id); System.out.println(person.getIdcard().getUsefullif e()); tx.commit(); return person; }finally{ if(s!=null){ s.close(); } } } static IdCard queryIdCard(int id){ Session s= null; Transaction tx = null; try { s=HibernateUtil.getSession(); tx= s.beginTransaction(); IdCard idCard=(IdCard)s.get(IdCard.class, id); System.out.println(idCard.getPerson().getName()); tx.commit(); return idCard; }finally{ if(s!=null){ s.close(); } } } static Person add(){ Session s= null; Transaction tx = null; try { s=HibernateUtil.getSession(); tx= s.beginTransaction(); IdCard idcard = new IdCard(); idcard.setUsefullife(new Date()); Person person = new Person(); person.setName("personname1"); person.setIdcard(idcard); idcard.setPerson(person); s.save(person); s.save(idcard); tx.commit(); return person; }finally{ if(s!=null){ s.close(); } } } }