zoukankan      html  css  js  c++  java
  • hibernate框架环境搭建

    一.概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库.

    二.hibernate框架的搭建

      1.导包

        lib目录下的required文件夹下的所有jar包.

        mysql驱动包.

      2.创建数据库于表.

      3.创建实体类.

      4.创建实体映射文件(以crm练习Customer类为例)

        实体类名.hbm.xml

        引入约束文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <!-- 根元素
            package(可选):填写包名.后面凡是需要完整类名的地方,都可以省略包名了.
     -->
    <hibernate-mapping package="cn.itcast.domain" >
        <!-- class:映射类与表的关系
                name属性:实体属性名
                table属性:对应的表名
         -->
        <class name="Customer" table="cst_customer" >
        <!-- id:映射主键属性名(OID)与主键列对应关系
                name属性: OID名称
                column属性(可选):主键列名,默认值就是name属性值
                length属性(可选):指定属性长度.默认值使用数据库对应列长度
                type属性(可选):指定当前列(属性)的类型.默认值会根据数据库类型自动指定类型.
                    type="long"                hibernate类型
                    type="java.lang.Long"    java类型
                    <column name="cust_id" sql-type="bigint" ></column>  数据库类型
         -->
            <id name="cust_id"  >
                <!--主键生成策略 
            increment:hibernate每次保存数据是,会查询数据库中最大的值,在最大值的基础上加1作为新的主键值(测试时使用)
                identity:主键自增,有数据库负责生成主键值
                sequence:序列,Oracle时使用
                hilo:高低位算法,适用于既不支持自增也不支持序列的库(用不着)
                native:identity|sequence|hilo自动三选一
                uuid:主键类型为字符串是使用.
                assigned:有我们手动指定ID值
            -->
                <generator class="native"></generator>
            </id>
            <!-- property:映射非主键属性名与非主键列对应关系
                name属性: 属性名
                column属性(可选):非主键列名,默认值就是name属性值
                length属性(可选):指定属性长度.默认值使用数据库对应列长度
                type属性(可选):指定当前列(属性)的类型.默认值会根据数据库类型自动指定类型.
                    type="long"                hibernate类型
                    type="java.lang.Long"    java类型
                    <column name="cust_id" sql-type="bigint" ></column>  数据库类型
         -->
            <property name="cust_name" column="cust_name"  ></property>
            <property name="cust_source" ></property>
            <property name="cust_industry" column="cust_industry" ></property>
            <property name="cust_level" column="cust_level" ></property>
            <property name="cust_phone" column="cust_phone" ></property>
            <property name="cust_mobile" column="cust_mobile" ></property>
        </class>
    </hibernate-mapping>

        创建主配置文件

          hibernate.cfg.xml(在src下)

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-configuration PUBLIC
     3     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     4     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     5     <!-- 根元素 -->
     6     <hibernate-configuration>
     7         <!-- 以下都是为sessionFactory对象配置的 -->
     8         <session-factory>
     9         <!-- 必选配置
    10         
    11             //方言
    12             //所有数据库的sql语句都是基于SQL99标准的
    13             //每个数据库遵循SQL99标准的同时,也会扩充一部分SQL语句.这些标准之外的sql语句叫做方言   mysql方言: limit 0,5
    14             //注意:mysql方言类一共有3个.一定要选最短的
    15             #hibernate.dialect org.hibernate.dialect.MySQLDialect
    16             //数据库驱动
    17             #hibernate.connection.driver_class com.mysql.jdbc.Driver
    18             //数据库连接url
    19             #hibernate.connection.url jdbc:mysql:///test
    20             //连接用户名
    21             #hibernate.connection.username gavin
    22             //连接密码
    23             #hibernate.connection.password
    24          -->
    25             <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    26             <property name="hibernate.connection.url">jdbc:mysql:///hibernate_54</property>
    27             <property name="hibernate.connection.username">root</property>
    28             <property name="hibernate.connection.password">1234</property>
    29             <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    30         <!-- 可选配置 
    31             //是否在控制台显示hibernate生成的sql
    32             hibernate.show_sql true
    33             //是否对显示到控制台的sql语句格式化
    34             hibernate.format_sql true
    35             //自动建表
    36             # create(测试时使用)        :  自动建表,每次启动hibernate的时候都会自动建表.
    37             # create-drop(测试时使用)     :  自动建表,每次启动hibernate的时候都会自动建表.释放资源时会将所有表删除.
    38             # update(常用)    :  自动建表,有表就不会再创建,如果已经存在的表不完全匹配.会自动修改表结构.
    39             # validate        :  校验表结构.不会自动建表.每次hibernate启动时都会检查表结构是否正确.
    40                                         //不正确=>抛出异常.
    41         -->
    42             <property name="hibernate.show_sql">true</property>
    43             <property name="hibernate.format_sql">true</property>
    44             
    45             <property name="hibernate.hbm2ddl.auto">update</property>
    46             
    47             <!-- 指定数据库隔离级别 
    48                 ## specify a JDBC isolation level
    49                 #hibernate.connection.isolation 4
    50                 mysql 默认级别是4
    51                 Oracle 默认级别是2
    52             -->
    53             <property name="hibernate.connection.isolation">4</property>
    54             <!-- 配置session与当前线程绑定 -->
    55             <property name="hibernate.current_session_context_class">thread</property>
    56             
    57             
    58         <!-- 映射引入配置 
    59                 resource属性:填写引入映射文件的路径. 相对于src目录下.
    60         -->
    61             <mapping resource="cn/itcast/domain/Customer.hbm.xml" />
    62         </session-factory>
    63     </hibernate-configuration>

        

  • 相关阅读:
    as3 变量默认值
    as3 判断移动方向
    as3 根据鼠标移动方向
    as3 XML类和XMLList类的区别
    as3 文档类判断是否被加载
    AS3获取对象类名,getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
    as3 object与dictionary区别
    吹芯片
    stm32四种输入
    usart和uart 的区别
  • 原文地址:https://www.cnblogs.com/cocosili/p/6952186.html
Copyright © 2011-2022 走看看