zoukankan      html  css  js  c++  java
  • 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();
            }
        }
  • 相关阅读:
    中高级PHP程序员应该掌握哪些技术
    如何在FOXMAIL添加网易邮箱
    subline text 3快捷键
    【sublime】sublime Text 3 javaScript代码自动提示插件&安装步骤 &启动Debug模式
    PHPStorm常用快捷键
    怎么样快速修改HOSTS文件?让火绒等小工具来帮忙
    windows系统 右键新建菜单添加新建php文件
    给初学编程的人的干货
    安装Adobe Dreamweaver CC时出现安装失败及解决方法
    win10系统每次打开软件都会弹出账户控制如何解决
  • 原文地址:https://www.cnblogs.com/lds85930/p/841905.html
Copyright © 2011-2022 走看看