hibernate.cfg.xml的一些相关配置

  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  4.  
  5. <hibernate-configuration>
  6. <!-- 通常,一个session-factory节点代表一个数据库 -->
  7. <session-factory>
  8.  
  9. <!-- 1. 数据库连接配置 -->
  10. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  11. <property name="hibernate.connection.url">jdbc:mysql:///hib_demo</property>
  12. <property name="hibernate.connection.username">root</property>
  13. <property name="hibernate.connection.password">root</property>
  14.  
  15. <!-- 数据库方法配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql-->
  16. <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
  17.  
  18. <!-- 2. 其他相关配置 -->
  19. <!-- 2.1 显示hibernate在运行时候执行的sql语句 -->
  20. <property name="hibernate.show_sql">true</property>
  21. <!-- 2.2 格式化sql -->
  22. <property name="hibernate.format_sql">true</property>
  23. <!-- 2.3 自动建表 -->
  24. <property name="hibernate.hbm2ddl.auto">update</property>
  25.  
  26. <!-- 配置session的创建方式:线程方式创建session对象 -->
  27. <property name="hibernate.current_session_context_class">thread</property>
  28.  
  29. <!--****************** 【连接池配置】****************** -->
  30. <!-- 配置连接驱动管理类 -->
  31. <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
  32. <!-- 配置连接池参数信息 -->
  33. <property name="hibernate.c3p0.min_size">2</property>
  34. <property name="hibernate.c3p0.max_size">4</property>
  35. <property name="hibernate.c3p0.timeout">5000</property>
  36. <property name="hibernate.c3p0.max_statements">10</property>
  37. <property name="hibernate.c3p0.idle_test_period">30000</property>
  38. <property name="hibernate.c3p0.acquire_increment">2</property>
  39.  
  40. <!--****************** 【二级缓存配置】****************** -->
  41. <!-- a. 开启二级缓存 -->
  42. <property name="hibernate.cache.use_second_level_cache">true</property>
  43. <!-- b. 指定使用哪一个缓存框架(默认提供的) -->
  44. <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
  45. <!-- 开启查询缓存 -->
  46. <property name="hibernate.cache.use_query_cache">true</property>
  47. <!-- c. 指定哪一些类,需要加入二级缓存 -->
  48. <class-cache usage="read-write" class="包名.类名"/>
  49. <class-cache usage="read-only" class="包名.类名"/>
  50. <!-- 集合缓存[集合缓存的元素对象,也加加入二级缓存] -->
  51. <collection-cache usage="read-write" collection="包名.类名.类里的属性"/>
  52.  
  53. <!-- 3. 加载所有映射
  54. <mapping resource="cn/itcast/a_hello/Employee.hbm.xml"/>
  55. -->
  56. </session-factory>
  57. </hibernate-configuration>

类名.hbm.xml的常用相关配置

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5.  
  6. <hibernate-mapping package="cn.itcast.a_query">
  7.  
  8. <!-- 类的属性 -->
  9. <class name="类名" table="表名" >
  10. <!-- 开始主键说明 -->
  11. <id name="id字段,主键">
  12. <!--
  13. 主键的生成策略
  14. identity 自增长(mysql,db2)
  15. sequence 自增长(序列), oracle中自增长是以序列方法实现
  16. native 自增长【会根据底层数据库自增长的方式选择identity或sequence】
  17. 如果是mysql数据库, 采用的自增长方式是identity
  18. 如果是oracle数据库, 使用sequence序列的方式实现自增长
  19.  
  20. increment 自增长(会有并发访问的问题,一般在服务器集群环境使用会存在问题。)
  21.  
  22. assigned 指定主键生成策略为手动指定主键的值
  23. uuid 指定uuid随机生成的唯一的值
  24. foreign (外键的方式, one-to-one讲)
  25. -->
  26. <generator class="native"></generator>
  27. </id>
  28. <!-- 结束主键说明 -->
  29. <!-- 开始其他字段说明 -->
  30. <!--
  31. 普通字段映射
  32. property
  33. name 指定对象的属性名称
  34. column 指定对象属性对应的表的字段名称,如果不写默认与对象属性一致。
  35. length 指定字符的长度, 默认为255
  36. type 指定映射表的字段的类型,如果不指定会匹配属性的类型
  37. java类型: 必须写全名
  38. hibernate类型: 直接写类型,都是小写
  39. -->
  40. <property name="其他键" length="20"></property>
  41. <!-- 结束其他字段说明 -->
  42. <!-- 开始集合说明 -->
  43. <!--
  44. set集合属性的映射
  45. --name 指定要映射的set集合的属性
  46. --table 集合属性要映射到的表
  47. --key 指定集合表(t_address)的外键字段
  48. --element 指定集合表的其他字段
  49. --type 元素类型,一定要指定
  50. -->
  51. <set name="address" table="t_address">
  52. <key column="uid"></key>
  53. <element column="address" type="string"></element>
  54. </set>
  55. <!--
  56. list集合映射
  57. --list-index 指定的是排序列的名称 (因为要保证list集合的有序)
  58. -->
  59. <list name="addressList" table="t_addressList">
  60. <key column="uid"></key>
  61. <list-index column="idx"></list-index>
  62. <element column="address" type="string"></element>
  63. </list>
  64. <!--
  65. map集合的映射
  66. --key 指定外键字段
  67. --map-key 指定map的key
  68. --element 指定map的value
  69. -->
  70. <map name="addressMap" table="t_addressMap">
  71. <key column="uid"></key>
  72. <map-key column="shortName" type="string" ></map-key>
  73. <element column="address" type="string" ></element>
  74. </map>
  75. <!-- 结束集合说明 -->
  76. <!-- 开始对应关系的结构说明 -->
  77. <!--
  78. 一对多
  79. 1. 指定 映射的集合属性: "emps"
  80. 2. 集合属性对应的集合表: "t_employee"
  81. 3. 集合表的外键字段 "t_employee. dept_id"
  82. 4. 集合元素的类型
  83. inverse=false set集合映射的默认值; 表示有控制权
  84. -->
  85. <set name="emps" cascade="save-update,delete" table="t_employee" inverse="true"> <!-- table="t_employee" -->
  86. <key column="dept_id"></key>
  87. <one-to-many class="Employee"/>
  88. </set>
  89. <!--
  90. 多对一
  91. Employee 映射关键点:
  92. 1. 映射的部门属性 : dept
  93. 2. 映射的部门属性,对应的外键字段: dept_id
  94. 3. 部门的类型
  95. -->
  96. <many-to-one name="dept" column="dept_id" class="Dept"></many-to-one>
  97. <!--
  98. 多对多
  99. name 指定映射的集合属性
  100. table 集合属性对应的中间表
  101. key 指定中间表的外键字段(引用当前表t_developer主键的外键字段)
  102. many-to-many
  103. column 指定外键字段对应的项目字段
  104. class 集合元素的类型
  105. 集合属性,默认使用懒加载
  106. lazy
  107. true 懒加载
  108. extra 懒加载(智能)
  109. false 关闭懒加载
  110. -->
  111. <set name="projects" table="t_relation" lazy="extra">
  112. <key column="did"></key>
  113. <many-to-many column="prjId" class="Project"></many-to-many>
  114. </set>
  115. <!-- 结束对应关系的结构说明 -->
  116.  
  117. </class>
  118.  
  119. <!-- 存放sql语句 -->
  120. <query name="getAllDept">
  121. <![CDATA[
  122. from Dept d where deptId < ?
  123. ]]>
  124.  
  125. </query>
  126.  
  127. </hibernate-mapping>

hibernate的常用配置的更多相关文章

  1. SSH(struts+spring+hibernate)常用配置整理

    SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...

  2. hibernate学习笔记(3)hibernate常用配置以及session对象

    更改hibernate.cfg.xml的内容,常用配置有: <!--  把hibernate运行时的SQL语句显示到控制台  --> <property name="sho ...

  3. hibernate课程 初探单表映射2-2 hibernate常用配置

    1 hibernate.cfg.xml常用配置: show_sql 控制台打印sql format_sql 控制台将sql排版 hbm2ddl.auto: create 删除表结构,重新建表并插值 u ...

  4. hibernate.hbm2ddl.auto配置详解

    hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:<properties><property name="hibernate. ...

  5. Hibernate入门3.配置映射文件深入

    Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...

  6. Mingyang.net:hibernate.hbm2ddl.auto配置详解【转】

    原文地址:http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html hibernate.cfg.xml 中hibern ...

  7. hibernate进阶--一对多映射配置

    hibernate作为一款优秀的ORM框架,广受大家喜爱,也被Java社区公认为持久层的首选.虽然jdbc为Java数据库操 作带来了诸多便利,但是并没有统一SQL语句的写法,而且具体操作数据库的代码 ...

  8. Spring连接池的常用配置

    1.连接池概述 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个 应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正 ...

  9. 初识Hibernate的主配置和映射配置

    Hibernate.cfg.xml 主配置 Hibernate.cfg.xml 主配置文件夹中主要配置:数据库链接配置,其他参数配置,映射信息等. 常用配置查看源码: hibernate-distri ...

随机推荐

  1. codeforces 401D. Roman and Numbers 数位dp

    题目链接 给出一个<1e18的数, 求将他的各个位的数字交换后, 能整除m的数的个数. 用状态压缩记录哪个位置的数字已经被使用了, 具体看代码. #include<bits/stdc++. ...

  2. Android 在一个程序中启动另一个程序

    Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用.一般我们知道了另一个应用的包名和MainActivity的名字 ...

  3. 57. Spring 自定义properties升级篇【从零开始学Spring Boot】

    之前在两篇文章中都有简单介绍或者提到过 自定义属性的用法: 25.Spring Boot使用自定义的properties[从零开始学Spring Boot] 51. spring boot属性文件之多 ...

  4. 《火球——UML大战需求分析》(0.1)——开篇废话

    说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...

  5. delphi调用外部程序打开文件

    delphi调用外部程序打开文件 ShellExecute的各种用法 一.利用系统默认的邮件收发器发送电子邮件 Uses ..., ShellAPI; Var lpHwnd: HWND; lpOper ...

  6. Java 根据comboBox选择结果显示JTable

    处理这样的问题的主要思路是:     对于JTable,JTree等Swing控件,都有一个对应的Model用来存储数据,JTable对应的有一个DefaultTableModel.     Defa ...

  7. iperf

    iperf命令是一个网络性能测试工具.iperf可以测试TCP和UDP带宽质量.iperf可以测量最大TCP带宽,具有多种参数和UDP特性.iperf可以报告带宽,延迟抖动和数据包丢失.利用iperf ...

  8. XML 文档解析操作

    sing System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security; ...

  9. ios学习Day3xiawu

    switch #include <stdio.h> int main(int argc, char * argv[]) { int i; scanf("%d",& ...

  10. 如果DataGrid的checkbox出现点一个另外自动点另一个现象

    如果DataGrid的checkbox出现点一个另外自动点另一个现象: 取消(EnableRowVirtualization)这个选项就可以正常了(关闭虚拟UI):