hello world from hibernate

初次学习hibernate,第一个程序,用的是XML配置文件

准备工作:下载hibernate的JAR包,我下的是当前最新的4.2.3,SQL的数据库驱动文件SQLJDBC,导入上述架包。

 

至此准备工作OK。

步骤:

1:定义一个类,这个类的属性,就是你要存放到数据库中的内容。当然有些属性可以不存入,这些还需要配置文件来决定。

我的类的定义:

package com.hibernate.model;

import java.util.Date;

public class Log {

    
     public Log()
     {
         this.OperateTime = new Date();
     }
    
     private  int Id ;
     private  int Version; 
     private  int VersionHelper;
     private  String OperateType; 
     private  Date OperateTime ;
     private  String Operater ;
     private  String DetailOperate ;
     private  Boolean Success; 
     private  String FailInfo ;
    
     public int getId() {
        return Id;
    }
     public void setId(int id) {
        Id = id;
    }
    public int getVersion() {
        return Version;
    }
    public void setVersion(int version) {
        Version = version;
    }
    public int getVersionHelper() {
        return VersionHelper;
    }
    public void setVersionHelper(int versionHelper) {
        VersionHelper = versionHelper;
    }
    public String getOperateType() {
        return OperateType;
    }
    public void setOperateType(String operateType) {
        OperateType = operateType;
    }
    public Date getOperateTime() {
        return OperateTime;
    }
    public void setOperateTime(Date operateTime) {
        OperateTime = operateTime;
    }
    public String getOperater() {
        return Operater;
    }
    public void setOperater(String operater) {
        Operater = operater;
    }
    public String getDetailOperate() {
        return DetailOperate;
    }
    public void setDetailOperate(String detailOperate) {
        DetailOperate = detailOperate;
    }
    public Boolean getSuccess() {
        return Success;
    }
    public void setSuccess(Boolean success) {
        Success = success;
    }
    public String getFailInfo() {
        return FailInfo;
    }
    public void setFailInfo(String failInfo) {
        FailInfo = failInfo;
    }
    
}

2:配置这个类的的映射文件。Log.hbm.xml

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hibernate.model">
 <class name="Log" table="WMS.Log">
  <id name="Id" column="Id">
  </id>
  <property name="Version" column="Version" type="int" not-null="true"></property>

  <property name="VersionHelper" column="VersionHelper" type="int" not-null="true"></property>

  <property name="OperateType" column="OperateType" type="string"/>
 
  <property name="OperateTime" column="OperateTime" />

  <property name="Operater" column="Operater" type="string"/>
  
  <property name="DetailOperate" column="DetailOperate" type="string"/>
  <property name="Success" column="Success" type="boolean"/>
  <property name="FailInfo" column="FailInfo" type="string"/>
  
 </class>
</hibernate-mapping>

 


配置文件的时候,里面的name是类中对应属性的名字,而column是这个属性对应数据库中的列,一般情况下基本相同,方便理解.

后面的TYPE,是属性对应的类型,如果不写的话,那么会自动识别。

 

3:配置hibernate.cfg.xml文件,所有这些文件的位置在上图中都有显示,这个配置文件要放在项目根目录下。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration >
    <session-factory>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;databaseName=wms_meide</property>
        <property name="connection.username">sa</property>
         <property name="connection.password">123456</property>
        
        
        <property name="show_sqlserver">true</property>

         <mapping resource="com/hibernate/model/Log.hbm.xml" />
        
  </session-factory>
</hibernate-configuration>

其中mapping配置,是要映射类的映射文件所在的地方。

 

到此所有的配置工作已经完成。

写一个单元测试:

    public static void main(String[] args)
    {
        
        Log log=new Log();
        log.setId(1111);
        log.setOperater("gjf");
        log.setOperateType("ccc");
        log.setVersionHelper(1);
        log.setVersion(2);
        log.setSuccess(true);
        
        Configuration cfg=new Configuration();
       // cfg.configure("/hibernate.cfg.xml");
    
        @SuppressWarnings("deprecation")
        SessionFactory sf=cfg.configure().buildSessionFactory();//这个方法已经过时,但是还是可以用
        Session session=sf.openSession();//得到session
        session.beginTransaction();//开启事务
        session.save(log);//保存到数据库
        session.getTransaction().commit();//提交事务,如果事务出现问题,那么保存会失败
        session.close();
        sf.close();
        
    }

第一个hibernate已经写好并成功运行。

期间出现的问题:

1:无法解析hibernate.cfg.xml文件。

解决方法:这个问题主要是XML文件书写有误,导致格式不正确。将其用浏览器打开,如果不报错则说明已经OK。如果报错,按照提示,解决问题!

2:写入数据库的时候,无法执行SQL语句,

可能是因为配置文件时的格式和数据库格式不一致,将配置文件中的TYPE删除即可。

 

 

posted @ 2013-08-04 17:27  shenghaishiweini  阅读(268)  评论(1编辑  收藏  举报