• 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.1src
                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.2in
              测试:在DOS下 C:Documents and SettingLab1>ant
                           Buildfile:build.xml does not exist!
                           Build failed          测试成功!~~ 
          ⑵.修改的XML如下:
            ⒈ build.xml    路径:(E:Middlegen-Hibernate-r5uild.xml)
               ①24行              <!ENTITY database SYSTEM "file:./config/database/mssql.xml">
               ②51行              <property name="build.gen-src.dir"    value="D: emp"/>   结果文件在哪产生
               ③158行             <table name="数据表名"/>      连接数据库表名 (注:可以建立很需要的表)
               ④185行              package="改自己的包名"        根据自己要求取包的名字
             
            ⒉选择的数据库   路径:(E:Middlegen-Hibernate-r5configdatabase*.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驱动大集合SqlServerJTDSjtds.jar 放入E:Middlegen-Hibernate-r5lib 里面 就可以了!~
            ⒊java object (java 对象)
                工具4:hibernate-extensions-2.1.3    解压到....注意目录。
           ㈠:设置环境变量:
                   在系统变量中添加一变量名为hibernate-home 其值为hibernate发行包的跟目录:E:hibernate-2.1 注意格式。
             在DOS下运行:
                     C:Documents and Settingslab1>e:
                     E:>dir/w
                     E:>cd E:Middlegen-Hibernate-r5
                     E:Middlegen-Hibernate-r5>ant
                     E:>cd E:hibernate-extensions-2.1.3 oolsin

                E:hibernate-extensions-2.1.3 oolsin>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.1lib的所有.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()+" "+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();
            }
        }

    若无凌云志,何以逆苍天.
  • 相关阅读:
    PHP 错误:Warning: Cannot modify header information
    PHP截取中文字符串
    myeclipse 保存含中文的jsp失败,提示内容含有 ISO-8859-1 不支持的字符
    jquery ajax到servlet出现中文乱码(utf-8编码下)
    数据结构~动态存储管理(五)
    数据结构~树和二叉树(三)
    数据结构~线性表(二)
    数据结构~基础概念(一)
    每日一摘:串并-并串转换
    每日一摘:Verilog复位
  • 原文地址:https://www.cnblogs.com/xiaoguangit/p/4143929.html
Copyright © 2020-2023  润新知