当前位置:编程学习 > JAVA >>

Hibernate初学之一对多、多对一关系模型

举例订单与客户
多对一关系模型:
 · 首先是导包;这个省略不写了,
 · 其次写domain类
分为Client Order两个类,因为是多对一的关系,所以外键应该放在Order这个类里;
配置文件:hibernate.cfg.xml
[java]  
<hibernate-configuration>  
  
 <session-factory name="foo">  
  
 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  
 <property name="connection.url">jdbc:mysql:///test</property>  
  
 <property name="connection.username">root</property>  
  
 <property name="connection.password">root</property>  
  
 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  
  
    
  
     <property name="show_sql">true</property>  
  
 <property name="hbm2ddl.auto">update</property>   
  
  
  
 <mapping resource="com/hbsi/domain/Client.hbm.xml"/>  
  
 <mapping resource="com/hbsi/domain/Order.hbm.xml"/>  
  
  
  
  
  
 </session-factory>  
  
</hibernate-configuration>  
  
  
  
定义一个Client的变量;  
  
·然后写配置文件,Client.hbm.xml  
  
  <hibernate-mapping package=”com.hbsi.domain”>  
  
     <class name=”Client” table=”client”>//类名和表名  
  
     <id name=”id” column=”id”>//变量和字段  
  
       <generator class= ”native” />//根据数据库里的设置自定义  
  
      </id>  
  
      <property name=”name” />  
  
  </class>  
  
</hibernate -mapping>  
  
  
 Order.hbm.xml  
  
<hibernate-mapping>  
  
    <class name=”Order” table=”ordershop”>  
  
          <id name=”id”>  
  
             <generator class=”native” />  
              </id>  
  
          <property name=”shopname” column=”shopname” />  
  
          <property name=”number” column=”number”/>  
  
          <property name = “price” column=”price” />  
  
          <many-to-one name=”client” column=”client_id” />  
  
    <class>  
  
  
</hibernate-mapping>  
  
  
配置文件这样就写完了,接下来就是添加查找;  
  
  
      Session session=null;  
  
     @Test  
  
  public void add(Client client,Order order){  
  
  try{  
  
   session = HibernateUtil.getSession();//获取工具类  
  
  session.beginTransaction();//开启事务  
  
    
  
   /*Client client = new Client(); 
 
   client.setName("刘总"); 
 
   Order order1 = new Order(); 
 
          order1.setShopname("航空母舰"); 
 
          order1.setNumber(2); 
 
   order1.setPrice(22); 
 
   order1.setCt(client); 
 
    
 
   Order order2 = new Order(); 
 
          order2.setShopname("航空母舰"); 
 
          order2.setNumber(2); 
 
   order2.setPrice(22); 
 
   order2.setCt(client);*/  
  
     
  
   session.save(client);  
  
   session.save(order);  
  
   session.beginTransaction().commit();  
  
  }finally{  
  
  if(session!=null){  
  
  session.close();  
  
  }  
  
  }  
  
     
  
  }  
  
       
  
     public void find(int id){  
  
      try{  
  
       session = HibernateUtil.getSession();  
  
       session.beginTransaction();  
  
       Order order = (Order) session.get(Order.class, id);  
  
       System.out.println(order.getCt().getName());  
  
         
  
       session.beginTransaction().commit();  
  
     }finally{  
  
     if(session!=null){  
  
     session.close();  
  
     }   
  
     }  
&nb
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,