hibernate 一对一 多对多的关系

本文介绍了一对一关系在Hibernate中的实现方式,包括实体类定义、映射文件配置及操作类实现。通过具体示例展示了如何使用Hibernate框架进行数据持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public interface OperateInterface {

 public Session session=null;
 public void save (Object object);
 public void update (Object object);
 public void delete (Object object);
}

public class Operater implements OperateInterface {

 public Session session=null;
 
 
 public Operater (){
  Configuration config =new Configuration().configure ();
  SessionFactory factory=config.buildSessionFactory();
  this.session=factory.openSession();
  
 }

 public void save(Object object) {
  // TODO Auto-generated method stub
  Transaction tran=this.session.beginTransaction();
  this.session.save(object);
  tran.commit();
  this.session.flush();

 }

}

<hibernate-mapping></hibernate-mapping>         映射h b.xml文件

......  prop

xml 代码
  1. xml version="1.0" encoding="utf-8"?>  
  2. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  3.   
  4. <hibernate-mapping>  
  5.     <class name="com.many.vo.Classstu" table="CLASSSTU" schema="TEST">  
  6.         <id name="id" type="java.lang.Long">  
  7.             <column name="ID" precision="22" scale="0" />  
  8.             <generator class="increment" />  
  9.         id>  
  10.         <property name="classname" type="java.lang.String">  
  11.             <column name="CLASSNAME" length="20" />  
  12.         property>  
  13.            
  14.         <one-to-one name="stu" class="com.many.vo.Stu" >one-to-one>  
  15.     class>  
  16. hibernate-mapping>  
  17.   
  18.   
  19.   
  20. ========================   
  21.   
  22. package com.many.vo;   
  23.   
  24. /**   
  25.  * Classstu generated by MyEclipse Persistence Tools   
  26.  */   
  27.   
  28. public class Classstu implements java.io.Serializable {   
  29.   
  30.     // Fields   
  31.   
  32.     private Long id;   
  33.   
  34.     private String classname;   
  35.        
  36.     private Stu stu;   
  37.   
  38.     // Constructors   
  39.   
  40.     public Stu getStu() {   
  41.         return stu;   
  42.     }   
  43.   
  44.     public void setStu(Stu stu) {   
  45.         this.stu = stu;   
  46.     }   
  47.   
  48.     /** default constructor */   
  49.     public Classstu() {   
  50.     }   
  51.   
  52.     /** full constructor */   
  53.     public Classstu(String classname) {   
  54.         this.classname = classname;   
  55.     }   
  56.   
  57.     // Property accessors   
  58.   
  59.     public Long getId() {   
  60.         return this.id;   
  61.     }   
  62.   
  63.     public void setId(Long id) {   
  64.         this.id = id;   
  65.     }   
  66.   
  67.     public String getClassname() {   
  68.         return this.classname;   
  69.     }   
  70.   
  71.     public void setClassname(String classname) {   
  72.         this.classname = classname;   
  73.     }   
  74.   
  75. }   
  76.   
  77. =============================   
  78.   
  79. package com.many.vo;   
  80.   
  81. /**   
  82.  * Stu generated by MyEclipse Persistence Tools   
  83.  */   
  84.   
  85. public class Stu implements java.io.Serializable {   
  86.   
  87.     // Fields   
  88.   
  89.     private Long id;   
  90.   
  91.     private String name;   
  92.   
  93.     private Long classid;   
  94.        
  95.     private Classstu classStu;   
  96.   
  97.     // Constructors   
  98.   
  99.     /** default constructor */   
  100.     public Stu() {   
  101.     }   
  102.   
  103.     /** full constructor */   
  104.     public Stu(String name, Long classid) {   
  105.         this.name = name;   
  106.         this.classid = classid;   
  107.     }   
  108.   
  109.     // Property accessors   
  110.   
  111.     public Long getId() {   
  112.         return this.id;   
  113.     }   
  114.   
  115.     public void setId(Long id) {   
  116.         this.id = id;   
  117.     }   
  118.   
  119.     public String getName() {   
  120.         return this.name;   
  121.     }   
  122.   
  123.     public void setName(String name) {   
  124.         this.name = name;   
  125.     }   
  126.   
  127.     public Long getClassid() {   
  128.         return this.classid;   
  129.     }   
  130.   
  131.     public void setClassid(Long classid) {   
  132.         this.classid = classid;   
  133.     }   
  134.   
  135.     public Classstu getClassStu() {   
  136.         return classStu;   
  137.     }   
  138.   
  139.     public void setClassStu(Classstu classStu) {   
  140.         this.classStu = classStu;   
  141.     }   
  142.   
  143. }   
  144.   
  145. ==============================   
  146. package com.many.services;   
  147.   
  148. import java.util.HashSet;   
  149.   
  150. import org.hibernate.HibernateException;   
  151.   
  152. import com.many.dao.Operater;   
  153.   
  154. import com.many.vo.*;   
  155.   
  156. public class Test {   
  157.   
  158.     /**   
  159.      * @param args   
  160.      */   
  161.     public static void main(String[] args) {   
  162.         // TODO Auto-generated method stub   
  163.         Stu stu = new Stu();   
  164.         Classstu classstu = new Classstu();   
  165.         stu.setName("s张华");   
  166.         stu.setClassid(new Long(13566));   
  167.         stu.setId(new Long(8));   
  168.         stu.setClassStu(classstu);   
  169.            
  170.         classstu.setClassname("s246-班");   
  171.         classstu.setStu(stu);   
  172.         stu.setClassStu(classstu);   
  173.            
  174.            
  175.        
  176.         Room r = new Room ();   
  177.        
  178.         r.setAddress("新港西路34号");   
  179.            
  180.         Users u = new Users();   
  181.        
  182.         u.setName("杨晓东");   
  183.         u.setRoom(r);   
  184.   
  185.         A a = new A ();   
  186.         B bnew B ();   
  187.   
  188.            
  189.         a.setLove("唱歌");   
  190.            
  191.         b.setName("李华");   
  192.         b.setPhone(new Long (12364));   
  193.         Operater o = new Operater();   
  194.         try {   
  195.         o.save(a);     
  196.         o.save(b);   
  197.         o.session.close();   
  198.         System.out.println("transaction success");   
  199.         } catch (HibernateException e) {   
  200.             // TODO Auto-generated catch block   
  201.             e.printStackTrace();   
  202.         }   
  203.     }   
  204.   
  205. }   
  206.   

erty <property name="classid" type="java.lang.Long">
            <column name="CLASSID" precision="22" scale="0"></column>
        one-to-one name="classStu" class="com.many.vo.Classstu" cascade="all"<one-to-one class="com.many.vo.Classstu" name="classStu" cascade="all"></one-to-one></property>
        <one-to-one class="com.many.vo.Classstu" name="classStu" cascade="all"></one-to-one>
   

----实体类---

package com.many.vo;

/**
 * Stu generated by MyEclipse Persistence Tools
 */

public class Stu implements java.io.Serializable {

 // Fields

 private Long id;

 private String name;

 private Long classid;
 
 private Classstu classStu;

 // Constructors

 /** default constructor */
 public Stu() {
 }

 /** full constructor */
 public Stu(String name, Long classid) {
  this.name = name;
  this.classid = classid;
 }

 // Property accessors

 public Long getId() {
  return this.id;
 }

 public void setId(Long id) {
  this.id = id;
 }

 public String getName() {
  return this.name;
 }

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

 public Long getClassid() {
  return this.classid;
 }

 public void setClassid(Long classid) {
  this.classid = classid;
 }

 public Classstu getClassStu() {
  return classStu;
 }

 public void setClassStu(Classstu classStu) {
  this.classStu = classStu;
 }

}

package com.many.vo;

/**
 * Classstu generated by MyEclipse Persistence Tools
 */

public class Classstu implements java.io.Serializable {

 // Fields

 private Long id;

 private String classname;
 
 private Stu stu;

 // Constructors

 public Stu getStu() {
  return stu;
 }

 public void setStu(Stu stu) {
  this.stu = stu;
 }

 /** default constructor */
 public Classstu() {
 }

 /** full constructor */
 public Classstu(String classname) {
  this.classname = classname;
 }

 // Property accessors

 public Long getId() {
  return this.id;
 }

 public void setId(Long id) {
  this.id = id;
 }

 public String getClassname() {
  return this.classname;
 }

 public void setClassname(String classname) {
  this.classname = classname;
 }

}

 

------测试类层 -------

package com.many.services;

import org.hibernate.HibernateException;

import com.many.dao.Operater;
import com.many.vo.Classstu;
import com.many.vo.Stu;

public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Stu stu = new Stu();
  Classstu classstu = new Classstu();
  stu.setName("张华");
  stu.setClassid(new Long(13566));
  stu.setClassStu(classstu);
  
//  classstu.setClassname("246-班");
  classstu.setStu(stu);
  stu.setClassStu(classstu);
  
  Operater o = new Operater();
  try {
   o.save(stu);
   o.session.close();
   System.out.println("transaction success");
  } catch (HibernateException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

}

-------------此为典型的一对一的关系-----------

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值