数据库中表的关联关系---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 代码
- public class User implements java.io.Serializable {
- private Integer userid;
- private String username;
- private Card card;
- public Card getCard() {
- return card;
- }
- public void setCard(Card card) {
- this.card = card;
- }
- public User() {
- }
- /** full constructor */
- public User(String username) {
- this.username = username;
- }
- 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;
- }
- }
xml 代码user.hbm.xml
- xml version="1.0" encoding="utf-8"?>
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="org.eimhe.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.eimhe.Card" cascade="all">one-to-one>
- class>
- hibernate-mapping>
java 代码
- public class Card implements java.io.Serializable {
- private Integer cardid;
- private Integer cardnum;
- private User user;
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- 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;
- }
- }
xml 代码card.hbm.xml
- xml version="1.0" encoding="utf-8"?>
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="org.eimhe.Card" table="card">
- <id name="cardid" type="java.lang.Integer">
- <column name="cardid" />
- <generator class="foreign" >
- <param name="property">userparam>
- generator>
- id>
- <property name="cardnum" type="java.lang.Integer">
- <column name="cardnum" />
- property>
- <one-to-one name="user" class="org.eimhe.User">one-to-one>
- class>
- hibernate-mapping>
java 代码
- 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();
- }
- }
java 代码
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class addUser extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- User user=new User();
- user.setUsername("zhangsan1");
- Card card=new Card();
- user.setCard(card);
- card.setCardnum(new Integer(9));
- card.setUser(user);
- UserDAO userdao=new UserDAO();
- userdao.save(user);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doGet(request,response);
- }
- }