在项目中我们经常需要使用数据源,数据源存储所有建立数据库连接的信息。就象通过指定文件名你可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。下面分别对C3P0数据源和Tomcat jdbc数据源的基本配置进行说明。其中我使用的数据库是MySql

首先简单的介绍一下c3p0数据源的配置设置;c3p0版本c3p0-0.9.1.2.jar

<bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource" ><!--—数据库的基础配置这些属性参数的值来自generatorMySqlConfig.properties--><propertyname="driverClass" value="${jdbc.driver}" /><propertyname="jdbcUrl" value="${jdbc.url}" /><propertyname="user" value="${jdbc.user}" /><propertyname="password" value="${jdbc.password}" /><!--C3P0连接配置这些属性参数的值同样可以在generatorMySqlConfig.properties中进行定义--><!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。默认值: 3--><propertyname="initialPoolSize" value="1" /><!--连接池中保留的最小连接数--><propertyname="minPoolSize" value="1" /><!--连接池中保留的最大连接数,默认值: 15--><propertyname="maxPoolSize" value="3" /><!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0--><propertyname="maxIdleTime" value="30" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3--><propertyname="acquireIncrement" value="5" /><!--每60秒检查所有连接池中的空闲连接。Default: 0--><propertyname="idleConnectionTestPeriod" value="60" /><!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 --><property name="acquireRetryAttempts"value="30" /><!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为tru          e,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认值: false--><property name="breakAfterAcquireFailure"value="false" /><!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个connection而不是整个连接池。所以设置这个参数需要考          虑到多方面的因素。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0--><property name="maxStatements" value="0"/><!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestT          able等方法来提升连接测试的性能。Default: false--><propertyname="testConnectionOnCheckout" value="false" /></bean>

Tomcat JDBC完全兼容DBCP的旧属性,只要把spring配置文件里的class 名改掉就可以继续用了。在使用tomcate jdbc数据源的时候需要用到两个jar包文件tomcat-jdbc.jar,tomcat-juli.jar

tomcat-jdbc.jar+tomcat-juli.jar下载

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"><!-- Connection Info --><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!—连接数据池配置信息 --><!--maxActive和maxIdle的默认值是100,可以自己设置一下。--><property name="maxActive" value="${dbcp.maxActive}" /><property name="maxIdle" value="${dbcp.maxIdle}" /><!--defaultAutoCommit=false好像是必须设置的,否则事务好像会不灵光。--><property name="defaultAutoCommit" value="false" />
</bean>

Idle连接的处理方式,但大于maxIdel后,连接return到池时直接丢弃。每5秒检查一次所有idle连接,idle超过60秒的回收(timeBetweenEvictionRunsMillis,minEvictableIdleTimeMillis),默认不会在检查时执行validationQuery(如select 1 in mysql),除非设置了testWhileIdle。为了避免validate query太过频繁,增强的validationInterval属性(默认30秒内)只会执行一次。有个初始initialSize,也就是minIdle,默认值是10。另外DBCP中的numTestsPerEvictionRun属性已失效。

maxWait(默认30秒),如果池里已没有连接,会等到30秒才抛错。

防止应用忘记retun collection,removeAbandoned默认为false,否则借出超过60秒(removeAbandonedTimeout)的连接就会被干掉。还有TomcatJDBC的新feature可供进一步阅读。

generatorMySqlConfig.properties配置文件:

classPath=../lib/mysql-connector-java-5.1.25-bin.jar

targetProject=/eclipse/workspace/DataCaculateDemo/src

modelPackage=cn.caculate.model

sqlMapperPackage=cn.caculate.dao.mapper

daoPackage=cn.caculate.dao

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/test

jdbc.user=scott

jdbc.password=tiger

C3P0数据源和Tomcat jdbc数据源的基本配置相关推荐

  1. Weblogic Xa数据源和非Xa数据源的选择

    背景: 在项目上,不管是ADF应用,BPM应用,或者是OSB.SOA接口,数据源和出站连接池的建立必然少不了,而数据源的类型就有Xa数据源和非Xa数据源,那我们如何选择呢,选择不当会造成什么后果呢,下 ...

  2. tomcat7 mysql 连接池_Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置

    Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是 dbcp存在一些问题: (1)dbcp 是单线程的,为了保证线程安全会锁整个连接池 (2)dbcp 性能不佳 ...

  3. AngularJS $q 和 $q.all 单个数据源和多个数据源合并(promise的说明)

    这篇文章讲的不错, angular $q  和 promise!! -------------------------------------------------------------- 通过调 ...

  4. tomcat mysql数据源_Tomcat mysql 配置数据源

    把驱动拷贝到/common/lib下,然后改server.xml和web.xml, server.xml加如下(里): debug="5" reloadable="tru ...

  5. 在独立Java应用程序中使用Tomcat JDBC连接池

    这是从我们的客人文章W4G伙伴克拉伦斯豪的作者临春3从A按. 您可能会在文章结尾找到本书的折扣券代码,仅适用于Java Code Geeks的读者! 请享用! 在需要数据访问权限的独立Java应用程序 ...

  6. 数据层优化-jdbc连接池简述、druid简介

    终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化 ...

  7. Spring Boot数据库操作原理及整合druid数据源和mybatis

    在Spring Boot中如果需要访问数据库,我需要导入以下两个依赖: <dependency><groupId>org.springframework.boot</gr ...

  8. java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  9. mybatis 连接池_应用框架之Mybatis数据源和连接池

    本文将从以下几个方面介绍Mybatis的数据源和连接池: MyBatis数据源DataSource分类 数据源DataSource的创建过程 DataSource什么时候创建Connection对象 ...

最新文章

  1. 3. Swift 数组|字典|集合
  2. UidGenerator
  3. extract进程 oracle,ogg extract进程stoped问题
  4. Git各区的添加与撤销[实际操作验证]
  5. C# IO操作(五)文件的递归加载
  6. Sniffer Pro 教程
  7. java安全编码指南之:ThreadPool的使用
  8. python集合用法_Python 集合(Set)
  9. 【转】ABP源码分析十八:UI Inputs
  10. JDK时区与电脑系统时区不一致,导致时间new date不对
  11. Java 1.1.6 码点与码点单元(回)
  12. ISA 发布内网 NLB
  13. 2011-寒假 linux 学习笔记
  14. 2020 数学建模 A题
  15. matlab求导赋值,MATLAB 函数先求导再赋值
  16. 计算机专业科研特长怎么写,毕业登记表特长怎么写(计算机专业)
  17. oracle crs 4563,重启机器后,节点2无法启动crs,Oracle你生产的RAC为何如此的脆弱,有图有真相。求解...
  18. 杰理之 MIC录音 vbat电压低于3.2v会有很强的底噪?【篇】
  19. aspnetdb.mdb数据库介绍
  20. 一著名软件公司的java笔试算法题的答案

热门文章

  1. K8S使用dashboard管理集群
  2. BFS - 求最短路径
  3. TightVNC进行远程控制
  4. Java语法——标识符,关键字,数据类型,变量常量介绍
  5. session过期问题
  6. 【php】使用phpdbg来调试php程序
  7. C#/ASP.NET完善的DBHelper,配套Model生成器
  8. 2.5、Android Studio添加多适配的向量图片
  9. git log控制输出宽度
  10. redis数据库无法写入导致的bug