zoukankan      html  css  js  c++  java
  • hibernate 之 hibernate配置讲解,hibernate执行流程

    1. hibernate.cfg.xml 配置文件:

    <hibernate-configuration>
        <session-factory>
            <!-- hibernate核心配置文件  
                该配置文件中包含了3类配置信息:
                    数据库连接信息
                    通用配置信息
                    映射文件信息
            -->
            <!-- 配置数据库连接信息 -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql:///test</property>
            <property name="connection.username">root</property>
            <property name="connection.password">1111</property>
            <!-- 通用配置信息 -->
            <!-- 配置方言 -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <!-- 打印sql语句 -->
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
            <!-- 映射文件信息 -->
            <mapping resource="cn/sxt/vo/User.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>

    2.xxx.hbm.xml映射文件:

    <!-- 映射文件配置信息  
             该文件将类和数据库表进行关联映射
             package 设置类所在的包  如果不设置该包的内容,那么在配置class的name需要将类的完全限定名配置上
             如果配置了包名,在该映射文件下的所有类 都可以不写包名。
      -->
    <hibernate-mapping package="cn.sxt.vo">
        <!-- class 配置类和表的映射信息 
            name是类名(注意是否配置完全限定名)
            table 表名  如果不配置 默认和类名一致
         -->
        <class name="User" table="t_user">
            <!-- 
                id配置主键:
                    name是 类中的属性名  
                    column数据库中的字段名 不写时和属性名一致 
                    type是hibernate定义的类型,也可以使用java的类型,如果不写会自动匹配
             -->
            <id name="id" column="id" type="int">
                <!-- 主键生成策略:
                    increment 用于为long, short或者int类型生成 唯一标识。只有在没有
                    其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。
                    identity 对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL
                    的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。
                    sequence 在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列
                    (sequence), 而在Interbase中使用生成器(generator)。返回的标识符是long, 
                    short或者 int类型的。 
                    <generator class="sequence">
                        <param name="sequence">user_seq</param>
                    </generator>
                    uuid 用一个128-bit的UUID算法生成字符串类型的标识符, 这在一个网络中是唯一的
                    (使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。 
                    native 根据底层数据库的能力选择identity, sequence 或者hilo中的一个。 
                    assigned 让应用程序在save()之前为对象分配一个标示符。这是 <generator>
                    元素没有指定时的默认生成策略。 
                    foreign 使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。 
                 -->
                <generator class="native"></generator>
                
            </id>
            <!-- property映射普通类属性 
                name表示属性名 
                not-null设置是否为null
             -->
            <property name="name" column="name" type="java.lang.String"></property>
            <property name="age" column="age" type="int" ></property>
        </class>
    </hibernate-mapping>

    3. hibernate执行过程:

      Configuration 读取配置信息及映射信息。

      SessionFactory 根据数据库的连接信息创建该对象,sessionFactory用于创建Session的工厂。

      Session用于操作对象,实现对数据库的crud操作。根据session的不同方法,生成不同的sql语句。并且执行该语句,返回的结果又被封装为指定的对象。

      

  • 相关阅读:
    POI使用详解
    POI导入导出Excel文件(二)
    jsp页面String转JSON
    jQuery的9中构造函数
    元素的BFC特性与自适应布局
    JS replace可以接受回调函数
    基于clip-path的任意元素的碎片拼接动效(源自鑫空间)
    解耦应用逻辑/事件处理程序
    CSS行高line-height的一些深入理解及应用
    常见的三种三栏网页宽度自适应布局 方法
  • 原文地址:https://www.cnblogs.com/forever2h/p/6734892.html
Copyright © 2011-2022 走看看