快速业务通道

hibernate3学习笔记(十一)|复合主键 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
t;mapping resource="com/hb3/pack_03/model/User.hbm.xml" /> ......

测试代码如下:

1.package com.hb3.pack_03;2.3.import org.hibernate.Session;4.import org.hibernate.SessionFactory;5.import org.hibernate.Transaction;6.import org.hibernate.cfg.Configuration;7.
8.import com.hb3.pack_03.model.User;9.
10.public class BusinessService {11.
12.    public static void main(String[] args) {13.14.        Configuration config = new Configuration().configure();15.        SessionFactory sessionFactory = config.buildSessionFactory();16.        Session session = sessionFactory.openSession();17.
18.        User user = new User();19.        user.setName("shenbin");20.        user.setPhone("0970123456");21.        user.setAge(28);22.        Transaction tx = session.beginTransaction();23.        session.save(user);24.        tx.commit();25.26.        user = (User) session.load(User.class, user);27.28.        System.out.println(user.getAge() + "\t" +  user.getName() + "\t" + user.getPhone());29.
30.        session.close();31.        sessionFactory.close();32.    }33.}

hibernate3学习笔记(十一)|复合主键(3)

时间:2011-02-03

请注意:在实际测试过程中,如果数据库已经有数据存在,则不需要上面的黑题部分向数据库追加数据。

另外还请留意的是,光有session.save(user);而没有tx.commit();的话,数据不会被持久到数据库中的。

方法2.复合主键字段独立到另一个类中。

UserPK.java(需要实现Serializable接口,并定义equals()和hashCode()方法)

1.package com.hb3.pack_04.model;2.3.import java.io.Serializable;4.
5.import org.apache.commons.lang.builder.EqualsBuilder;6.import org.apache.commons.lang.builder.HashCodeBuilder;7.
8.public class UserPK implements Serializable {9.
10.    private static final long serialVersionUID = -2457999265373664790L;11.
12.    private String name;13.    private String phone;14.
15.    public String getName() {16.        return name;17.    }18.    public void setName(String name) {19.        this.name = name;20.    }21.    public String getPhone() {22.        return phone;23.    }24.    public void setPhone(String phone) {25.        this.phone = phone;26.    }27.    public boolean equals(Object obj) {28.        if(obj == this) {29.            return true;30.        }31.32.        if(!(obj instanceof User)) {33.            return false;34.        }35.36.        UserPK pk = (UserPK) obj;37.        return new EqualsBuilder()38.                 .append(this.name, pk.getName())39.                 .append(this.phone, pk.getPhone())40.                 .isEquals();41.    }42.43.    public int hashCode() {44.        return new HashCodeBuilder()45.                 .append(this.name)46.                 .append(this.phone)47.                 .toHashCode();48.    }49.}

hibernate3学习笔记(十一)|复合主键(4)

时间:2011-02-03

User.java

1.package com.hb3.pack_04.model;2.3.import java.io.Serializable;4.
5.public class User implements Serializable {6.
7.    private static final long serialVersionUID = -863048146

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号