Hibernate 一对一的关系(one-to-one)

来源:互联网 发布:模糊车牌识别软件 编辑:程序博客网 时间:2024/04/29 13:15
  1. Hibernate 一对一的关系(one-to-one)
  2. 假设学生和卡是一对一的关系
  3. (mysql)
  4. 学生表:
  5. CREATE TABLE `stu` (
  6.   `sid` int(11) NOT NULL auto_increment,
  7.   `sname` varchar(50default NULL,
  8.   PRIMARY KEY  (`sid`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  10. 卡表:
  11. CREATE TABLE `card` (
  12.   `cid` int(11) NOT NULL auto_increment,
  13.   `cname` varchar(50default NULL,
  14.   PRIMARY KEY  (`cid`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  16. Stu Bean:
  17. public class Stu  implements java.io.Serializable {
  18.     private Integer sid;
  19.      private String sname;
  20.      private Card card;
  21.   public Card getCard() {
  22.         return card;
  23.     }
  24. public void setCard(Card card) {
  25.         this.card = card;
  26.     }
  27.   public Stu() {
  28.     }
  29.   public Stu(String sname) {
  30.         this.sname = sname;
  31.     }
  32.   public Integer getSid() {
  33.         return this.sid;
  34.     }
  35.     
  36.     public void setSid(Integer sid) {
  37.         this.sid = sid;
  38.     }
  39.     public String getSname() {
  40.         return this.sname;
  41.     }
  42.     
  43.     public void setSname(String sname) {
  44.         this.sname = sname;
  45.     }
  46. }
  47. Card Bean:
  48. public class Card  implements java.io.Serializable {
  49.      private Integer cid;
  50.      private String cname;
  51.      private Stu stu;
  52.     public Stu getStu() {
  53.         return stu;
  54.     }
  55.     public void setStu(Stu stu) {
  56.         this.stu = stu;
  57.     }
  58.     public Card() {
  59.     }
  60.     public Card(String cname) {
  61.         this.cname = cname;
  62.     }
  63.    public Integer getCid() {
  64.         return this.cid;
  65.     }
  66.     
  67.     public void setCid(Integer cid) {
  68.         this.cid = cid;
  69.     }
  70.     public String getCname() {
  71.         return this.cname;
  72.     }
  73.     
  74.     public void setCname(String cname) {
  75.         this.cname = cname;
  76.     }
  77. }
  78. Stu.hbm.xml:
  79. <hibernate-mapping>
  80.     <class name="com.vo.Stu" table="stu" catalog="lms">
  81.         <id name="sid" type="java.lang.Integer">
  82.             <column name="sid" />
  83.             <generator class="native" />
  84.         </id>
  85.         <property name="sname" type="java.lang.String">
  86.             <column name="sname" length="50" />
  87.         </property>
  88.         <one-to-one name="card" class="com.vo.Card" cascade="save-update"></one-to-one>
  89.     </class>
  90. </hibernate-mapping>
  91. Card.hbm.xml:
  92. <hibernate-mapping>
  93.     <class name="com.vo.Card" table="card" catalog="lms">
  94.         <id name="cid" type="java.lang.Integer">
  95.             <column name="cid" />
  96.             <generator class="foreign" >
  97.              <param name="property">stu</param>
  98.             </generator>
  99.         </id>
  100.         <property name="cname" type="java.lang.String">
  101.             <column name="cname" length="50" />
  102.         </property>
  103.         <one-to-one name="stu" class="com.vo.Stu"></one-to-one>
  104.     </class>
  105. </hibernate-mapping>
  106. Test.java:
  107. public class Test {
  108.     SessionFactory sf;
  109.     Session session;
  110.     private Test()
  111.     {
  112.         try
  113.         {
  114.             Configuration cfg = new Configuration();
  115.             sf = cfg.configure().buildSessionFactory();
  116.             session = sf.openSession();
  117.         }
  118.         catch(HibernateException ex)
  119.         {
  120.             ex.printStackTrace();
  121.         }
  122.         
  123.     }
  124.     public void addMethod(Stu st)
  125.        {
  126.            Transaction t=null;
  127.            t=session.beginTransaction();
  128.            session.save(st);
  129.            t.commit();
  130.            
  131.        }
  132.     public static void main(String[] args) {
  133.                 Stu st=new Stu();
  134.                 st.setSname("ding6");
  135.                 Card ca=new Card();
  136.                 ca.setCname("jcard6");
  137.                 st.setCard(ca);  
  138.                 ca.setStu(st);  
  139.                 
  140.                 new Test().addMethod(st);
  141.     }
  142. }
原创粉丝点击