Hibernate

Ⅰ.Hibernate配置前提工作(E:\):
    (一).解压4个工具包
         工具如下:apache-ant-1.6.2-bin.zip      →→     apache-ant-1.6.2
                   hibernate-2.1.2.zip                       →→     hibernate-2.1
                   hibernate-extensions-2.1.3.zip     →→     hibernate-extensions-2.1.3
                   Middlegen-Hibernate-r5.zip          →→     Middlegen-Hibernate-r5
                   JDBC驱动
    (二).了解Hibernate几个基本概念:
     ①ORM     object (java object) - relation( hibernate) -object(Dbo)
     ②POJO    无格式普通java对象
     ③XML     字描述非常强
     ④数据库相关信息
Ⅱ.Hibernate配置
    (一).获得数据库连接信息
          二种格式:
            1>.文件名为:hibernate.properties   位于 E:\hibernate-2.1\src
            2>.文件名为:hibernate.cfg.xml
                                注意: hibernate.properties 优先考虑。
       运用工具1: hibernate-2.1.2.zip     (Hibernate发行包)
             ⑴.用XMLwriter工具对hibernate.properties (键值对存放数据的)文件进行修改,步骤如下 :
                  ①.用#进行注释 (22-30行)       
                        例: 22行 ## HypersonicSQL
                            24-30行 用#进行注释
                  ②.按 Ctrl+F 查找你要连接的数据库 (如:jtds) 对其进行修改
                     116行 ## MS SQL Server
                          hibernate.dialect net.sf.hibernate.dialect.SQLServerDialect
                          hibernate.connection.username sa
                          hibernate.connection.password sa
                     138行 ## jTDS (not supported!)
                          hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver
                          hibernate.connection.url jdbc:jtds:sqlserver://localhost:1433/pubs
                          hibernate.jdbc.use_scrollable_resultset false
             好的,第一步成功了!^_^!~  

   (二).映射信息 (扩展名为:hbm.xml的文件)
       运用工具2:    Middlegen-Hibernate-r5.zip (用于生成hbm文件) 注意:它自己不可以运行靠工具3生成
       运用工具3:    apache-ant-1.6.2-bin.zip    (运行Middlegen的工具)
      ⑴.设置环境变量,在系统环境变量中添加名叫ant_home的变量,其值为ant工具的根目录 并且ant根目录下的bin目录放入path变量
            1.新建环境变量(ant_home) E:\apache-ant-1.6.2
            2.path                    E:\apache-ant-1.6.2\bin
          测试:在DOS下 C:\Documents and Setting\Lab1>ant
                       Buildfile:build.xml does not exist!
                       Build failed          测试成功!~~
      ⑵.修改的XML如下:
        ⒈ build.xml    路径:(E:\Middlegen-Hibernate-r5\build.xml)
           ①24行              <!ENTITY database SYSTEM "file:./config/database/mssql.xml">
           ②51行              <property name="build.gen-src.dir"    value="D:\temp"/>   结果文件在哪产生
           ③158行             <table name="数据表名"/>      连接数据库表名 (注:可以建立很需要的表)
           ④185行              package="改自己的包名"        根据自己要求取包的名字
        
        ⒉选择的数据库   路径:(E:\Middlegen-Hibernate-r5\config\database\*.xml)
            如:mssql.xml
           ①8行      <property name="database.driver.file"           value="${lib.dir}/jtds.jar"/>
           ②9行      <property name="database.driver"             value="net.sourceforge.jtds.jdbc.Driver"/>   修改Driver
           ③10行      <property name="database.url"                   value="jdbc:jtds:sqlserver://localhost:1433/pubs"/>

修改URL
           ④11行       <property name="database.userid"                value="sa"/>
           ⑤12行       <property name="database.password"              value="sa"/>
           ⑥13行       <property name="database.schema"                value="dbo"/>
           ⑦14行       <property name="database.catalog"               value="pubs"/>
          
       以上修改完后,需要注意的问题!
     ★特别注意:将你的JDBC驱动大集合\SqlServer\JTDS\jtds.jar 放入E:\Middlegen-Hibernate-r5\lib 里面 就可以了!~
        ⒊java object (java 对象)
            工具4:hibernate-extensions-2.1.3    解压到....注意目录。
       ㈠:设置环境变量:
               在系统变量中添加一变量名为hibernate-home 其值为hibernate发行包的跟目录:E:\hibernate-2.1 注意格式。
         在DOS下运行:
                 C:\Documents and Settings\lab1>e:
                 E:\>dir/w
                 E:\>cd E:\Middlegen-Hibernate-r5
                 E:\Middlegen-Hibernate-r5>ant
                 E:\>cd E:\hibernate-extensions-2.1.3\tools\bin

            E:\hibernate-extensions-2.1.3\tools\bin>hbm2java 结果文件的完整路径(*.xml) --output=java文件的存放目录(与结果文件放在一起)

     生产java文件。

     打开java文件;删除导入的用于序列化的包,删除最后的toString方法;

Ⅲ.Hibernate开发:
      1 .将.xml .java文件拖放到SRC中同一包下
      2.导入import java.io.*;
      3.把hibernate发行包中的hibernate.properties拖放到SRC中去。
      ….导入jar包:E:\hibernate-2.1\lib\的所有.jar包
                    所连接的数据库的JDBC的驱动包也要导入
                    hibernate发行包中的hibernate2.jar也要导入,                

OK 配置完成   开始测试代码:

package hello;

import java.util.List;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;

public class Hibernate {

    /**
    * @param args
    * @throws HibernateException
    * @throws MappingException
    * @throws HibernateException
    */
   
    public static void main(String[] args) throws MappingException, HibernateException {
        SessionFactory factory = new Configuration()
            .addClass(hello.Admin.class).buildSessionFactory();
       
        Session session = factory.openSession();
        Admin admin = new Admin();
        List list = session.find("from Admin");
       
        for (int i=0; i<list.size(); i++) {
            admin = (Admin) list.get(i);
            System.out.println(admin.getName()+"\t"+admin.getPassword());
        }
        factory.close();
        session.close();
    }
}
!!!注意:
如果表没有主键则必须重写equals() 和hashCode()方法,有主键则不必。
public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || !(o instanceof Admin))
            return false;

        Admin other = (Admin)o;

        if (name == other.getName()) return true;
        if (name == null) return false;

        return name.equals(other.getName());
    }

    public int hashCode() {
        if (name != null) {
            return name.hashCode();
        } else {
            return super.hashCode();
        }
    }

你可能感兴趣的:(Hibernate)