使用annotation开发hibernate3程序

本文介绍如何集成Hibernate3并创建一个简单的示例应用。通过配置文件、依赖项引入及实体映射,演示了如何实现与MySQL数据库的交互。

下载最新的hibernate3的jar包。http://www.hibernate.org/6.html

包括:Hibernate Core ,Hibernate Annotations ,Hibernate Validator

需要的jar列表如下(包括数据库jdbc)

antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
javassist-3.4.GA.jar
jta-1.1.jar
slf4j-api-1.4.2.jar
hibernate-annotations.jar
ejb3-persistence.jar
hibernate-commons-annotations.jar
hibernate-validator.jar
hibernate3.jar
log4j.jar
slf4j-log4j12.jar
ehcache-1.2.3.jar
commons-logging-1.1.jar

mysql-connector-java-5.1.6-bin.jar

 

新建mysql数据库,名为global.

执行下面的sql文新建表

  1. CREATE TABLE `t_user` (
  2.   `USR_ID` int(11) NOT NULL auto_increment,
  3.   `USR_LNM` varchar(20) NOT NULL,
  4.   `USR_PSW` varchar(128) NOT NULL,
  5.   `USR_AST` varchar(2) NOT NULL,
  6.   `USR_NAME` varchar(128) NOT NULL,
  7.   `USR_LLDT` datetime default NULL,
  8.   `USR_CNT` int(11) default NULL,
  9.   `USR_LGIP` varchar(20) default NULL,
  10.   PRIMARY KEY  (`USR_ID`)
  11. ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk;

自定义log4j.properties文件,这里略去。

 

hibernate.cfg.xml

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4.     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6.     <session-factory>
  7.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  8.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/global</property>
  9.         <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
  10.         <property name="connection.username">root</property>
  11.         <property name="connection.password">root</property>
  12.         <property name="jdbc.fetch_size">50</property>
  13.         <property name="jdbc.batch_size">30</property>
  14.         <property name="show_sql">true</property>
  15.         <property name="use_outer_join">true</property>
  16.         <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
  17.         <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
  18.         <property name="hibernate.cache.use_query_cache">true</property>
  19.         
  20.         <mapping class="com.global.hb3.model.TUser"/>
  21.         
  22.     </session-factory>
  23. </hibernate-configuration>

TUser.java

  1. package com.global.hb3.model;
  2. import static javax.persistence.GenerationType.IDENTITY;
  3. import java.util.Date;
  4. import javax.persistence.Column;
  5. import javax.persistence.Entity;
  6. import javax.persistence.GeneratedValue;
  7. import javax.persistence.Id;
  8. import javax.persistence.Table;
  9. import javax.persistence.Temporal;
  10. import javax.persistence.TemporalType;
  11. import org.hibernate.validator.Length;
  12. import org.hibernate.validator.NotNull;
  13. @Entity
  14. @Table(name = "t_user")
  15. public class TUser implements java.io.Serializable {
  16.     private static final long serialVersionUID = -8424250427606515536L;
  17.     
  18.     private Integer usrId;
  19.     private String usrLnm;
  20.     private String usrPsw;
  21.     private String usrAst;
  22.     private String usrName;
  23.     private Date usrLldt;
  24.     private Integer usrCnt;
  25.     private String usrLgip;
  26.     public TUser() {
  27.     }
  28.     public TUser(String usrLnm, String usrPsw, String usrAst, String usrName) {
  29.         this.usrLnm = usrLnm;
  30.         this.usrPsw = usrPsw;
  31.         this.usrAst = usrAst;
  32.         this.usrName = usrName;
  33.     }
  34.     public TUser(String usrLnm, String usrPsw, String usrAst, String usrName,
  35.             Date usrLldt, Integer usrCnt, String usrLgip) {
  36.         this.usrLnm = usrLnm;
  37.         this.usrPsw = usrPsw;
  38.         this.usrAst = usrAst;
  39.         this.usrName = usrName;
  40.         this.usrLldt = usrLldt;
  41.         this.usrCnt = usrCnt;
  42.         this.usrLgip = usrLgip;
  43.     }
  44.     @Id
  45.     @GeneratedValue(strategy = IDENTITY)
  46.     @Column(name = "USR_ID", unique = true, nullable = false)
  47.     public Integer getUsrId() {
  48.         return this.usrId;
  49.     }
  50.     public void setUsrId(Integer usrId) {
  51.         this.usrId = usrId;
  52.     }
  53.     @Column(name = "USR_LNM", nullable = false, length = 20)
  54.     @NotNull
  55.     @Length(max = 20)
  56.     public String getUsrLnm() {
  57.         return this.usrLnm;
  58.     }
  59.     public void setUsrLnm(String usrLnm) {
  60.         this.usrLnm = usrLnm;
  61.     }
  62.     @Column(name = "USR_PSW", nullable = false, length = 128)
  63.     @NotNull
  64.     @Length(max = 128)
  65.     public String getUsrPsw() {
  66.         return this.usrPsw;
  67.     }
  68.     public void setUsrPsw(String usrPsw) {
  69.         this.usrPsw = usrPsw;
  70.     }
  71.     @Column(name = "USR_AST", nullable = false, length = 2)
  72.     @NotNull
  73.     @Length(max = 2)
  74.     public String getUsrAst() {
  75.         return this.usrAst;
  76.     }
  77.     public void setUsrAst(String usrAst) {
  78.         this.usrAst = usrAst;
  79.     }
  80.     @Column(name = "USR_NAME", nullable = false, length = 128)
  81.     @NotNull
  82.     @Length(max = 128)
  83.     public String getUsrName() {
  84.         return this.usrName;
  85.     }
  86.     public void setUsrName(String usrName) {
  87.         this.usrName = usrName;
  88.     }
  89.     @Temporal(TemporalType.TIMESTAMP)
  90.     @Column(name = "USR_LLDT", length = 19)
  91.     public Date getUsrLldt() {
  92.         return this.usrLldt;
  93.     }
  94.     public void setUsrLldt(Date usrLldt) {
  95.         this.usrLldt = usrLldt;
  96.     }
  97.     @Column(name = "USR_CNT")
  98.     public Integer getUsrCnt() {
  99.         return this.usrCnt;
  100.     }
  101.     public void setUsrCnt(Integer usrCnt) {
  102.         this.usrCnt = usrCnt;
  103.     }
  104.     @Column(name = "USR_LGIP", length = 20)
  105.     @Length(max = 20)
  106.     public String getUsrLgip() {
  107.         return this.usrLgip;
  108.     }
  109.     public void setUsrLgip(String usrLgip) {
  110.         this.usrLgip = usrLgip;
  111.     }
  112. //  private String usrAstNm;
  113. //
  114. //  @Formula(value = "(select d.DVS_NM from T_DIVISION d where d.DVS_CD = USR_AST AND d.DVS_NO = 1)")
  115. //  public String getUsrAstNm() {
  116. //      return usrAstNm;
  117. //  }
  118. //
  119. //  public void setUsrAstNm(String usrAstNm) {
  120. //      this.usrAstNm = usrAstNm;
  121. //  }
  122. }

BusinessService.java

  1. package com.global.hb3;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.Transaction;
  5. import org.hibernate.cfg.AnnotationConfiguration;
  6. import org.hibernate.cfg.Configuration;
  7. import com.global.hb3.model.TUser;
  8. public class BusinessService {
  9.     public static SessionFactory sessionFactory;
  10.     static {
  11.         try {
  12.             Configuration config = new AnnotationConfiguration().configure("hibernate.cfg.xml");
  13.             sessionFactory = config.buildSessionFactory();
  14.         } catch (Exception e) {
  15.             e.printStackTrace();
  16.         }
  17.     }
  18.     
  19.     public static void main(String[] args) {
  20.         
  21.         Session session = sessionFactory.openSession();
  22.         Transaction tx = null;
  23.         try {
  24.             tx = session.beginTransaction();
  25.             TUser user = (TUser) session.get(TUser.classnew Integer(1));
  26.             System.out.println(user.getUsrName());
  27.             tx.commit();
  28.         } catch (Exception e) {
  29.             if (tx != null) {
  30.                 tx.rollback();
  31.             }
  32.             e.printStackTrace();
  33.         } finally {
  34.             session.close();
  35.         }
  36.     }
  37. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值