zoukankan      html  css  js  c++  java
  • hibernate配置文件模板

    hibernate.cfg.xml 配置文件模版:

    复制代码
    <?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-configuration>
        <session-factory>  
            <!-- 启动Hibernate时,重建数据库 create;更新数据库 update -->
            <property name="hbm2ddl.auto">update</property>
            <!--显示执行的SQL语句-->
            <property name="show_sql">true</property>
            <!-- 数据库方言 -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            
            <!-- driver url username password -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
            <property name="connection.url">jdbc:mysql://localhost:3306/test_db?useUnicode=true&amp;characterEncoding=UTF8&amp;useSSL=false</property>
            <property name="connection.username">root</property>
            <property name="connection.password">Cs123456</property>
            
            <!-- JDBC连接池(使用内置的连接池)-->
            <property name="connection.pool_size">5</property>
            <!-- 每次从数据库中取出,并放到JDBC的Statment中的记录条数,fetch_size设的越大,读取数据库的次数会越小,速度越快,但消耗更多内存 -->
            <property name="jdbc.fetch_size">50</property>
            <!-- 批量插入、删除和更新时,每次操作的记录数,batch_size越大,向数据库发送SQL语句的次数越少,速度越快,但消耗更多内存 -->
            <property name="jdbc.batch_size">30</property>
            <!-- Hibernate自动管理上下文的策略 -->
            <property name="current_session_context_class">thread</property>
    
            <!-- 配置mapping -->
            <!-- (1)hbm.xml 映射文件配置 -->
            <mapping resource="com/uzipi/entity/Student.hbm.xml" />
            <mapping resource="com/uzipi/entity/Course.hbm.xml" />
            <!-- (2)持久化类上的注解方式 -->
            <mapping class="com.uzipi.entity.TClass" />
      
        </session-factory>  
    </hibernate-configuration> 
    复制代码

    hibernate.cfg.xml 中配置的<mapping>对应映射文件,resource属性值需要填写具体的路径,比如:放在com.uzipi.entity包下的Student.hbm.xml,配成:

    <mapping resource="com/uzipi/entity/Student.hbm.xml" />

    如果是通过注解方式配置映射,在 hibernate.cfg.xml 文件中配置的<mapping>元素的属性是class ,填写类的全限定类名:
    <mapping class="com.uzipi.entity.TClass" />


    XXX.hbm.xml 映射文件模版:

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE hibernate-mapping PUBLIC  
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    
    <hibernate-mapping package="entity">
        <class name="com.uzipi.entity.Student" table="t_student">
            
            <id name="id" column="stu_id" type="int" unique="true"> <!-- 持久化类的唯一标识 -->
                <generator class="native" />
                <!-- <generator class="increment" /> -->
            </id>
            
            <property name="name" column="stu_name" type="string" not-null="true" length="200" />
            <property name="sex" type="string" length="10"> <!-- 另一种映射字段的方式 -->
                <column name="stu_sex"/>
            </property>
            <property name="age" column="stu_age" type="int" not-null="true" length="11" />
            <property name="classbj" column="class_id" type="string" length="200" />
            
        </class>
    </hibernate-mapping>
    复制代码

     <property>属性元素有两种配置方式:成对、单个。

    成对配置方式需要在<property>元素内配置一个<column name="xxx" />元素。

    如果映射文件中没有配置 column 和 type 属性,Hibernate 将会默认使用持久化类中的属性名称和属性类型匹配数据库表中的字段。

    <id>元素的子元素 <generator> 用来为持久化类的实例生成唯一的标识,映射数据库中的主键字段,class属性的常用配置值:

    increment:用于为Long、Short、Int类型生成唯一标识。集群下不要使用该属性

    identity:由支持自增字段类型的数据库底层实现,提供生成主键的功能(比如:MySQL)

    sequence:由支持序列的数据库底层实现,提供生成主键的功能(比如:Oracle)

    native:由 Hibernate 自动识别数据库底层实现,自动选择identity、sequence(一般配置该属性)

    assigned:由 Hibernate 程序负责主键的生成,此时持久化类的唯一标识不能声明为 private 类型

    select:通过数据库触发器生成主键

    foreign:使用另一个相关联的对象的标识符,通常和<one-to-one>一起使用

  • 相关阅读:
    CF做题记录
    MobaXterm左侧没有文件列表,没有SCP,不显示文件夹问题处理
    使用FastJson转换Object时,空字符串丢失的解决办法【转】
    fastjson处理复杂对象,参数为null问题定位
    python 数据库连接池
    Git找回add 后,未commit的文件(使用reset -hard 命令导致文件清除)
    nginx过滤来自特定IP和user-agent的请求
    Redis实现排行榜(带二位小数点)
    系统不做任何优化,性能提升10%的方法
    二(二)、基于注解形式配置bean
  • 原文地址:https://www.cnblogs.com/pingxin/p/p00076.html
Copyright © 2011-2022 走看看