菜鸟学习hibernate笔记<四>

数据库中表的关联关系---one to one

数据库

CREATE TABLE `card` (
  `cardid` int(11) NOT NULL auto_increment,
  `cardnum` int(11) default NULL,

xml 代码


  PRIMARY KEY  (`cardid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

CREATE TABLE `user` (
  `userid` int(11) NOT NULL auto_increment,
  `username` varchar(32) default NULL,
  PRIMARY KEY  (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

java 代码
  1. public class User  implements java.io.Serializable {   
  2.     private Integer userid;   
  3.      private String username;   
  4.      private Card card;   
  5.   
  6.    public Card getCard() {   
  7.         return card;   
  8.     }   
  9.   
  10.   
  11.     public void setCard(Card card) {   
  12.         this.card = card;   
  13.     }   
  14.   
  15.   
  16.     public User() {   
  17.     }   
  18.   
  19.        
  20.     /** full constructor */  
  21.     public User(String username) {   
  22.         this.username = username;   
  23.     }   
  24.   
  25.    public Integer getUserid() {   
  26.         return this.userid;   
  27.     }   
  28.        
  29.     public void setUserid(Integer userid) {   
  30.         this.userid = userid;   
  31.     }   
  32.   
  33.     public String getUsername() {   
  34.         return this.username;   
  35.     }   
  36.        
  37.     public void setUsername(String username) {   
  38.         this.username = username;   
  39.     }   
  40.    }  
xml 代码user.hbm.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="org.eimhe.User" table="user">  
  6.         <id name="userid" type="java.lang.Integer">  
  7.             <column name="userid" />  
  8.             <generator class="native" />  
  9.         id>  
  10.         <property name="username" type="java.lang.String">  
  11.             <column name="username" length="20" />  
  12.         property>  
  13.         <one-to-one name="card" class="org.eimhe.Card" cascade="all">one-to-one>  
  14.     class>  
  15. hibernate-mapping>  
java 代码
  1. public class Card  implements java.io.Serializable {   
  2.     private Integer cardid;   
  3.      private Integer cardnum;   
  4.      private User user;   
  5.     
  6.     public User getUser() {   
  7.         return user;   
  8.     }   
  9.   
  10.   
  11.     public void setUser(User user) {   
  12.         this.user = user;   
  13.     }   
  14.   
  15.   
  16. public Card() {   
  17.     }   
  18.   
  19.        
  20.     /** full constructor */  
  21.     public Card(Integer cardnum) {   
  22.         this.cardnum = cardnum;   
  23.     }   
  24.   
  25.       
  26.     // Property accessors   
  27.   
  28.     public Integer getCardid() {   
  29.         return this.cardid;   
  30.     }   
  31.        
  32.     public void setCardid(Integer cardid) {   
  33.         this.cardid = cardid;   
  34.     }   
  35.   
  36.     public Integer getCardnum() {   
  37.         return this.cardnum;   
  38.     }   
  39.        
  40.     public void setCardnum(Integer cardnum) {   
  41.         this.cardnum = cardnum;   
  42.     }   
  43.    }  
xml 代码card.hbm.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="org.eimhe.Card" table="card">  
  6.         <id name="cardid" type="java.lang.Integer">  
  7.             <column name="cardid" />  
  8.             <generator class="foreign" >  
  9.                 <param name="property">userparam>  
  10.             generator>  
  11.         id>  
  12.         <property name="cardnum" type="java.lang.Integer">  
  13.             <column name="cardnum" />  
  14.         property>  
  15.         <one-to-one name="user" class="org.eimhe.User">one-to-one>  
  16.     class>  
  17. hibernate-mapping>  
java 代码
  1. import org.hibernate.Session;   
  2. import org.hibernate.Transaction;   
  3.   
  4. public class UserDAO {   
  5.     public void save(User user)   
  6.     {   
  7.         Session session=HibernateSessionFactory.getSession();   
  8.         Transaction tx=session.beginTransaction();   
  9.             session.save(user);   
  10.         tx.commit();   
  11.     }   
  12. }  
java 代码
  1. import java.io.IOException;   
  2. import java.io.PrintWriter;   
  3.   
  4. import javax.servlet.ServletException;   
  5. import javax.servlet.http.HttpServlet;   
  6. import javax.servlet.http.HttpServletRequest;   
  7. import javax.servlet.http.HttpServletResponse;   
  8.   
  9. public class addUser extends HttpServlet {   
  10.   
  11.   
  12.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  13.             throws ServletException, IOException {   
  14.         User user=new User();   
  15.         user.setUsername("zhangsan1");   
  16.         Card card=new Card();   
  17.         user.setCard(card);   
  18.         card.setCardnum(new Integer(9));   
  19.         card.setUser(user);   
  20.         UserDAO userdao=new UserDAO();   
  21.         userdao.save(user);   
  22.     }   
  23.   
  24.        
  25.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
  26.             throws ServletException, IOException {   
  27.   
  28.     doGet(request,response);   
  29.     }   
  30.   
  31. }   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值