• JavaWeb学习:Hibernate的配置


    Hibernate配置

    一、映射的配置

    <?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">
        <!-- 
            以上规约内容是 hibernate-core-5.x.Final.jar包中
            org.hibernate => hibernate-mapping-3.0.dtd(或hibernate-mapping-5.0.dtd) 
        -->
    <hibernate-mapping>
    <!-- 建立类与表的映射 -->
    <class name="com.marw.util.Customer" table="cst_customer">
        <!-- 建立类中的属性与表中的主键对应 -->
        <id name="cust_id" column="cust_id">
            <generator class="native"></generator>
        </id>
        
        <!-- 建立类中的普通属性与表中的字段对应 -->
        <property name="cust_name" column="cust_name"></property>
        <property name="cust_source" column="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>

    1、class标签的配置:标签用来建立类与表的映射关系

      属性:

        name                                    :类的全路径

        table                                     :表名(类名与表名一致,table可以省略)

        catalog                                 :数据库名

    2、id标签的配置:标签用来建立类中的属性与表中的主键的对应关系

      属性:

        name                                    :类中的属性名

        column                                 :表中的字段名(类中的属性名和表中的字段名如果一致,column可以省略)

        length                                   :长度

        type                                       :类型

      2.1、<generator class="native"></generator> Hibernate主键策略

        incrament:hibernate中提供的自增长机制,主键类型:short、int、long,单线程程序中使用

          其原理:先发送一条sql语句:select max(主键) form 表;最大主键+1作为下一条记录的主键

        identity:使用数据库自增长机制,主键类型:short、int、long,只有MSSQL、MySQL数据库可以使用Oracle没有自增长机制

        sequence:序列方式,主键类型:short、int、long,Oracle支持序列,MySQL不支持sequence

        uuid:hiberna中随机生成字符串,主键类型:字符串

        native:本地策略,可以在identity和sequence之间自动切换

        assigned:hibernate放弃主键的管理,需要通过手动设置

        foreign:外部的,一对一的一种关联映射的情况下使用

    3、property标签的配置:标签用来建立类中的普通属性与表的字段的对应关系

      属性:

        name                                    :类中的属性名

        column                                 :表中的字段名

        length                                   :长度

        type                                       :类型

        not-null                                 :设置非空

        unique                                  :设置唯一

    二、Hibernate数据库配置

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
        <!-- 
            以上规约内容是 hibernate-core-5.x.Final.jar包中
            org.hibernate => hibernate-configuration-3.0.dtd 
        -->
    <hibernate-configuration>
        <session-factory>
            <!-- 连接数据库基本参数 -->
            <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
            <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=HibernateDB;</property>
            <property name="hibernate.connection.username">sa</property>
            <property name="hibernate.connection.password">AAA@111</property>
            
            <!-- 配置Hibernate的方言 -->
            <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
            <!-- 可选配置start -->
            <!-- 控制台打印sql语句 -->
            <property name="hibernate.show_sql">true</property>
            <!-- 控制台打印sql语句 格式化-->
            <property name="hibernate.format_sql">true</property>
            <!-- 可选配置end -->
            
            <!-- 配置映射 -->
            <mapping resource="com/marw/util/Customer.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>

    1、必须配置

      ①、数据库连接基本参数

        驱动类

        url路径

        用户名

        密码

      ②、方言

      ③、映射文件的引入

    2、可选配置

      控制台显示SQL   :hibernate.show_sql

      格式化显示SQL  :hibernate.format_sql

      自动建表                   :hibernate.hbm2ddl.auto  

    <property name="hibernate.hbm2ddl.auto">update</property>

        none                                      :不使用hibernate的自动建表

        create                                   :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表。(测试)

        create-drop      :如果数据库中已经有表,删除原有表,执行操作,删除这个表。如果没有表,新建一个,使用完了删除该表。(测试)

        update                                 :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)

        validate                                :如果没有表,不会创建表。只会使用数据库中原有的表。(校验映射和表结构)

       

  • 相关阅读:
    Chino 操作系统开发日志 (1)
    将Asp.Net Core和corefx移植到.Net 4.0
    C++编写操作系统(1):基于 EFI 的 Bootloader
    第二次作业:支付宝手机软件分析
    第一次作业:以人为鉴 可以明得失
    个人附加作业
    个人作业3---个人总结
    结对编程2---单元测试
    个人作业2---必应词典案例分析
    结对编程作业1
  • 原文地址:https://www.cnblogs.com/WarBlog/p/13920985.html
Copyright © 2020-2023  润新知