本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.hibernate 配置文件(部分参考http://www.cnblogs.com/jasonHome/p/5929471.html)

  1)Hibernate 配置文件主要用于配置数据库连接和 Hibernate 运行时所需的各种属性

  2)每个 Hibernate 配置文件对应一个 Configuration 对象

  3)Hibernate配置文件可以有两种格式:

    hibernate.properties

    hibernate.cfg.xml

2.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.acquire_increment : 当数据库连接池中的连接耗尽时, 同一时刻获取多少个数据库连接. 当连接池中的连接没有的时候,每次向服务器中要多少个数据库连接

    

    >hibernate.c3p0.timeout : 数据库连接池中连接对象在多长时间没有使用过后,就应该被销毁.

    >hibernate.c3p0.idle_test_period :  表示连接池检测线程多长时间检测一次池内的所有链接对象是否超时. 连接池本身不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔来做这件事,这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和 timeout 做对比,进而决定是否销毁这个连接对象.

    

    >hibernate.c3p0.max_statements :  缓存 Statement 对象的数量.

  ③其他

    >show_sql: 是否将运行期生成的SQL输出到日志以供调试。取值 true | false

    >format_sql: 是否将 SQL 转化为格式良好的 SQL . 取值 true | false

    >hbm2ddl.auto: 在启动和停止时自动地创建,更新或删除数据库模式。取值 create | update | create-drop | validate

    >hibernate.jdbc.fetch_size:

1 hibernate.jdbc.fetch_size:实质是调用 Statement.setFetchSize() 方法设定 JDBC 的 Statement 读取数据的时候每次从数据库中取出的记录条数。2   例如一次查询1万条记录,对于Oracle的JDBC驱动来说,是不会 1 次性把1万条取出来的,而只会取出 fetchSize 条数,当结果集遍历完了这些记录以后,再去数据库取 fetchSize 条数据。因此大大节省了无谓的内存消耗。

    Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。    Oracle数据库的JDBC驱动默认的Fetch Size = 10,是一个保守的设定,根据测试,当Fetch Size=50时,性能会提升1倍之多,当 fetchSize=100,性能还能继续提升20%,Fetch Size继续增大,性能提升的就不显著了。   并不是所有的数据库都支持Fetch Size特性,例如MySQL就不支持

    >hibernate.jdbc.batch_size:

1 hibernate.jdbc.batch_size:设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,类似于设置缓冲区大小的意思。batchSize 越大,批量操作时向数据库发送sql的次数越少,速度就越快。
2 测试结果是当Batch Size=0的时候,使用Hibernate对Oracle数据库删除1万条记录需要25秒,Batch Size = 50的时候,删除仅仅需要5秒!Oracle数据库 batchSize=30 的时候比较合适

    

   

1 <!-- 对于mysql 无效,对于oracle 有效 -->
2         <!-- 设定JDBC 的Statement 读取数据的时候每次从数据库中取出的记录的条数 -->
3         <property name="hibernate.jdbc.fetch_size">100</property>
4
5         <!-- 设置数据库进行批量删除,批量更新和批量插入的时候的大小 -->
6         <property name="hibernate.jdbc.batch_size">30</property>

3.hibernate中配置 c3p0数据源

  1)导入jar 包:

  \SSH-framwork\hibernate-release-4.2.4.Final\hibernate-release-4.2.4.Final\lib\optional\c3p0\*

    

  2)加入配置:

1 <!-- 配置c3p0 -->
2         <property name="hibernate.c3p0.max_size">10</property>
3         <property name="hibernate.c3p0.min_size">5</property>
4         <property name="c3p0.acquire_increment">2</property>
5         <property name="c3p0.idle_test_period">2000</property>
6         <property name="c3p0.timeout">2000</property>
7         <property name="c3p0.max_statements">10</property>

转载于:https://www.cnblogs.com/jasonHome/p/5931591.html

[原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...相关推荐

  1. [原创]Saltstack学习笔记:命令参数详解以及配置文件说明

    很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...

  2. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  3. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用

    目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...

  5. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  6. 开源鸿蒙南向嵌入学习笔记——NAPI框架学习(一)

    开源鸿蒙南向嵌入学习笔记--NAPI框架学习(一) 前言--系列介绍 本系列文章主要是记录笔者在鸿蒙南向的学习与工作中的知识点笔记记录,其中不止会针对鸿蒙中的学习问题进行思考与记录,也会对涉及到的一些 ...

  7. motan学习笔记 五 opentracing学习入门

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  8. 【PaddlePaddle学习笔记】从零开始学习图像分类01——图像处理入门基础

    本系列文章链接 [PaddlePaddle学习笔记]从零开始学习图像分类01--图像处理入门基础 未完待续...... 目录 一.关于图像的几个基本概念 1. 像素及其坐标 2. 图像的四种基本类型 ...

  9. MATLAB学习笔记0:学习须知

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

最新文章

  1. 浅谈C#中的异步编程
  2. 让人期待的2011年度最佳 jQuery 插件发布啦
  3. Jmeter操作mysql数据库测试
  4. 2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!
  5. python自动轨迹绘制_自动轨道图,轨迹,绘制
  6. [2-sat]HDOJ3622 Bomb Game
  7. tp3.2中怎么访问分类及子分类下面的文章
  8. android手机状态解释,比方android.os.Build.VERSION.SDK
  9. 3.1 RNN 循环神经网络 概述(上篇)
  10. Java - HuTool 使用 PhoneUtil、ReUtil等工具类(三)
  11. 【Paper】WISDM:Activity Recognition using Cell Phone Accelerometers
  12. 最新复刻李峋爱心表白HTML源代码+超唯美
  13. Topaz Mask AI 1.3.7汉化版|AI人工智能抠图插件Topaz Mask AI 1.3.7中文版
  14. Bilibili到底有多少御坂妹?(二)
  15. c语言与java的区别
  16. [转]一个IT人才的精彩故事
  17. java生成图片水印
  18. 连续非线性系统线性化理论
  19. 一份标准的软件测试方案模板
  20. android ps切图工具下载,移动APP设计之PS切图插件大汇总,值得收藏

热门文章

  1. FreeSql实体映射成数据库,数据库映射成实体类,指定表生成实体
  2. python自动测试g_python自动化测试报告(excel篇)
  3. 计算机基础第1次作业,计算机应用基础 第一次作业
  4. 拉链式存储_用户维度表(拉链表的方式存储)
  5. java 大数实现_Java中的大数类简单实现
  6. jdbc与java数据库编程_JDBC与JAVA数据库编程
  7. 程序员私活app排行_iOS程序员,失业就等于成为废人?
  8. es6 去掉空格_es6 filter() 数组过滤方法总结
  9. linux下dns劫持C语言实现,Linux下实现劫持系统调用的总结(上)--代码及实现
  10. linux svn启动失败,linux svn authorization failed错误