【原创】Hibernateonetoone

来源:互联网 发布:log4j2 输出sql 编辑:程序博客网 时间:2024/04/28 03:26

两个表user,card

     create table `test`.`user`(
        `userid` int default '' not null,
       `username` varchar(20),
        primary key (`userid`)
    );

    create unique index `PRIMARY` on `test`.`user`(`userid`);

    create table `test`.`card`(
        `cardid` int default '' not null,
       `cardnum` int,
        primary key (`cardid`)
    );

    create unique index `PRIMARY` on `test`.`card`(`cardid`);


 

index.jsp

  <body>
    <a href="servlet/addUser">add user</a>
  </body>


 

addUser.java

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  User user=new User();
  user.setUsername("rockie");
  Card card=new Card();
  user.setCard(card);
  card.setCardnum(new Integer(777));
  card.setUser(user);
  UserDAO userdao=new UserDAO();
  userdao.save(user);
 }


 

User.java

package org.rockie;

 

/**
 * User generated by MyEclipse - Hibernate Tools
 */

public class User  implements java.io.Serializable {


    // Fields   

     private Integer userid;
     private String username;
     private Card card;


    // Constructors

    public Card getCard() {
  return card;
 }


 public void setCard(Card card) {
  this.card = card;
 }


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

   
    /** full constructor */
    public User(String username) {
        this.username = username;
    }

  
    // Property accessors

    public Integer getUserid() {
        return this.userid;
    }
   
    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return this.username;
    }
   
    public void setUsername(String username) {
        this.username = username;
    }

}


 

Card.java

package org.rockie;

 

/**
 * Card generated by MyEclipse - Hibernate Tools
 */

public class Card  implements java.io.Serializable {


    // Fields   

     private Integer cardid;
     private Integer cardnum;
     private User user;


    // Constructors

    public User getUser() {
  return user;
 }


 public void setUser(User user) {
  this.user = user;
 }


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

   
    /** full constructor */
    public Card(Integer cardnum) {
        this.cardnum = cardnum;
    }

  
    // Property accessors

    public Integer getCardid() {
        return this.cardid;
    }
   
    public void setCardid(Integer cardid) {
        this.cardid = cardid;
    }

    public Integer getCardnum() {
        return this.cardnum;
    }
   
    public void setCardnum(Integer cardnum) {
        this.cardnum = cardnum;
    }
}


 

UserDAO.java

package org.rockie;

import org.hibernate.Session;
import org.hibernate.Transaction;

public class UserDAO {
 public void save(User user)
 {
  Session session=HibernateSessionFactory.getSession();
  Transaction tx=session.beginTransaction();
   session.save(user);
  tx.commit();
 }

}


 

User.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="org.rockie.User" table="user">
        <id name="userid" type="java.lang.Integer">
            <column name="userid" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" length="20" />
        </property>
        <one-to-one name="card" class="org.rockie.Card" cascade="all"></one-to-one>
    </class>
</hibernate-mapping>

 


 


Card.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="org.rockie.Card" table="card">
        <id name="cardid" type="java.lang.Integer">
            <column name="cardid" />
            <generator class="foreign">
             <param name="property">user</param>
            </generator>

        </id>
        <property name="cardnum" type="java.lang.Integer">
            <column name="cardnum" />
        </property>
        <one-to-one name="user" class="org.rockie.User"></one-to-one>
    </class>
</hibernate-mapping>

ps:此帖绝对是本人原创...

转载时..
请注明:
转至http://blog.csdn.net/Kipen/   作者:rockie(石の頭丶)
请尊重他人的劳动果实..
谢谢..

 --by rockie(石の頭丶)
原创粉丝点击