Hibernate 配置文件

  •Hibernate 配置文件主要用于配置数据库连接和 Hibernate 运行时所需的各种属性
  •每个 Hibernate 配置文件对应一个 Configuration 对象

hibernate.cfg.xml的常用属性

  •JDBC 连接属性

    –connection.url:数据库URL
    –connection.username:数据库用户名
    –connection.password:数据库用户密码
    –connection.driver_class:数据库JDBC驱动
    –dialect:配置数据库的方言,根据底层的数据库不同产生不同的 sql 语句,Hibernate 会针对数据库的特性在访问时进行优化

  •C3P0 数据库连接池属性

    –hibernate.c3p0.max_size: 数据库连接池的最大连接数
    –hibernate.c3p0.min_size: 数据库连接池的最小连接数
    –hibernate.c3p0.timeout:   数据库连接池中连接对象在多长时间没有使用过后,就应该被销毁
    –hibernate.c3p0.max_statements:  缓存 Statement 对象的数量
    –hibernate.c3p0.idle_test_period:  表示连接池检测线程多长时间检测一次池内的所有链接对象是否超时. 连接池本身不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔来做这件事,这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和 timeout 做对比,进而决定是否销毁这个连接对象。
    –hibernate.c3p0.acquire_increment: 当数据库连接池中的连接耗尽时, 同一时刻获取多少个数据库连接

  •其他

  –show_sql:是否将运行期生成的SQL输出到日志以供调试。取值 true | false
  –format_sql:是否将 SQL 转化为格式良好的 SQL . 取值 true | false
  –hbm2ddl.auto:在启动和停止时自动地创建,更新或删除数据库模式。取值 create | update | create-drop | validate
  –hibernate.jdbc.fetch_size 实质是调用 Statement.setFetchSize() 方法设定 JDBC 的 Statement 读取数据的时候每次从数据库中取出的记录条数。
    Oracle数据库的JDBC驱动默认的Fetch Size = 10,是一个保守的设定,根据测试,当Fetch Size=50时,性能会提升1倍之多,当 fetchSize=100,性能还能继续提升20%,Fetch Size继续增大,性能提升的就不显著了。并不是所有的数据库都支持Fetch Size特性,例如MySQL就不支持

  -hibernate.jdbc.batch_size: 设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,类似于设置缓冲区大小的意思。batchSize 越大,批量操作时向数据库发送sql的次数越少,速度就越快。Oracle数据库 batchSize=30 的时候比较合适。

对象关系映射文件

映射文件说明

•hibernate-mapping
  –类层次:class
    •主键:id
    •基本类型:property
    •实体引用类: many-to-one  |  one-to-one
    •集合:set | list | map | array
      –one-to-many
      –many-to-many
    •子类:subclass | joined-subclass
    •其它:component | any 等
  –查询语句:query(用来放置查询语句,便于对数据库查询的统一管理和优化)

Java 时间和日期类型的 Hibernate 映射

1). 两个基础知识:

  I. 在 Java 中, 代表时间和日期的类型包括: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java.util.Date 类的子类: java.sql.Date, java.sql.Time

和 java.sql.Timestamp, 这三个类分别和标准 SQL 类型中的 DATE, TIME 和 TIMESTAMP 类型对应

  II. 在标准 SQL 中, DATE 类型表示日期, TIME 类型表示时间, TIMESTAMP 类型表示时间戳, 同时包含日期和时间信息.

2). 如何进行映射 ?

  I. 因为 java.util.Date 是 java.sql.Date, java.sql.Time 和 java.sql.Timestamp 的父类, 所以 java.util.Date可以对应标准 SQL 类型中的 DATE, TIME 和 TIMESTAMP
  II. 基于 I, 所以在设置持久化类的 Date 类型是, 设置为 java.util.Date.
  III. 如何把 java.util.Date 映射为 DATE, TIME 和 TIMESTAMP ?
  可以通过 property 的 type 属性来进行映射:
例如:
<property name="date" type="timestamp">
<column name="DATE" />
</property> <property name="date" type="data">
<column name="DATE" />
</property> <property name="date" type="time">
<column name="DATE" />
</property>

其中 timestamp, date, time 既不是 Java 类型, 也不是标准 SQL 类型, 而是 hibernate 映射类型.

 

Hibernate 的配置文件的更多相关文章

  1. 2.一起来学hibernate之配置文件1与持久化对象

    学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...

  2. eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情

    主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件  :添加 spring和hibernate 支持 applicationC ...

  3. Hibernate常用配置文件详解

    本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...

  4. Hibernate的配置文件解析

    配置mybatis.xml或hibernate.cfg.xml报错: <property name="connection.url">jdbc:mysql://loca ...

  5. Hibernate之深入Hibernate的配置文件

    1.创建Configuration类的对象 Configuration类的对象代表了应用程序到SQL数据库的映射配置.Configuration类的实例对象,提供一个buildSessionFacto ...

  6. Hibernate之配置文件

    可持久化对象有以下三种状态: 临时状态(Transient):对象在保存进数据库之前为临时状态,这时数据库中没有该对象的信息,如果没有持久化,程序退出后临时状态的对象信息将会丢失.随时可能被垃圾回收器 ...

  7. spring(一)--spring/springmvc/spring+hibernate(mybatis)配置文件

    这篇文章用来总结一下spring,springmvc,spring+mybatis,spring+hibernate的配置文件 1.web.xml 要使用spring,必须在web.xml中定义分发器 ...

  8. 使用 <!-- 指定使用hibernate核心配置文件 --> <property name="configLocations" value="classpath:hibernate.cfg.xml"></property>

    在bean.xml文件中,这样使用出现问题 <!-- 指定使用hibernate核心配置文件 --> <property name="configLocations&quo ...

  9. hibernate框架配置文件详解

    1 orm元数据配置文件(映射文件) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hib ...

  10. Hibernate初探之单表映射——创建Hibernate的配置文件

    编写第一个Hibernate例子 第一步:创建Hibernate的配置文件 使用安装的Hibernate tools插件帮我们自动生成 如果在编辑的时候eclipse没有出现代码自动提示功能的话,我们 ...

随机推荐

  1. (一)S5PV210开发板常用易忘操作记录

    一.调试串口 2.SD卡槽 (三)启动方式选择 蜂鸣器下面的白色2针插座(图中红色线圈出来的那个)为选择USB/SD卡启动的开关.默认情况下为SD卡启动,如果需要USB启动则使用短路帽(若没有短路帽, ...

  2. git命令之git rebase 的用法

    rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin 现在我 ...

  3. Hbase之删除数据

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...

  4. Android Studio新建Jni工程

    2.2版本的Android Studio支持新建Jni工程,不用再像以前自己构建工程目录,首先把自己的升级自己的AS到2.2以上 然后打开Tools->Andorid->SDK manag ...

  5. VC++NMAKE

    目录 第1章 NMAKE    1 1.1 运行NMAKE    1 1.1.1 NMAKE的实质    2 1.2 描述块    3 1.2.1 定义    3 1.2.2 多个描述块    3 1 ...

  6. DirectX中的纹理及其创建

    正如大多初学者会遇到一个问题, 导入的图片为何不是原来的尺寸?例如800*600的实际上通过D3DXCreateTextureFromFile后变成的是1024*1024,即宽和高默认都会自动扩展为2 ...

  7. 坑爹的对GBK编码的字符进行url编码

    url编码又叫百分号编码 现在的url编码十分混乱,都没有按照新标准来 对汉字都按照不同的编码后再进行url编码 2005年1月发布的RFC 3986,强制所有新的URI必须对未保留字符不加以百分号编 ...

  8. 【bzoj1041】圆上的整点

    题意 给定一个圆\(x^2+y^2=z^2\),求圆周上有多少个点的坐标是整数. \(r\leq 2*10^9\) 分析 这道题目关键要知道一些勾股数的性质,剩下的就很好处理了. 勾股数的性质 参考: ...

  9. [myeclipse] 官方中文网站

    myeclipse官方中文网站:http://www.myeclipsecn.com/

  10. poj3159 Candies(差分约束,dij+heap)

    poj3159 Candies 这题实质为裸的差分约束. 先看最短路模型:若d[v] >= d[u] + w, 则连边u->v,之后就变成了d[v] <= d[u] + w , 即d ...