知识大全 使用Spring管理数据源连接池

Posted

篇首语:业无高卑志当坚,男儿有求安得闲?本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Spring管理数据源连接池相关的知识,希望对你有一定的参考价值。

使用Spring管理数据源连接池  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    不管通过何种持久化技术 都必须通过数据连接访问数据库 在Spring中 数据连接是通过数据源获得的 在以往的应用中 数据源一般是 Web应用服务器提供的 在Spring中 你不但可以通过JNDI获取应用服务器的数据源 也可以直接在Spring容器中配置数据源 此外 你还可以通过代码的方式创建一个数据源 以便进行无依赖的单元测试         配置一个数据源        Spring在第三方依赖包中包含了两个数据源的实现类包 其一是Apache的DBCP 其二是 C P 在此重点讲讲C P 的配置 此后会更新DBCP         <c p config>        <default config>        <! 当连接池中的连接耗尽的时候c p 一次同时获取的连接数 Default: >        <property name= acquireIncrement > </property>        <! 定义在从数据库获取新连接失败后重复尝试的次数 Default: >        <property name= acquireRetryAttempts > </property>        <! 两次连接中间隔时间 单位毫秒 Default: >        <property name= acquireRetryDelay > </property>        <! 连接关闭时默认将所有未提交的操作回滚 Default: false >        <property name= autoCommitOnClose >false</property>        <! c p 将建一张名为Test的空表 并使用其自带的查询语句进行测试 如果定义了这个参数那么属性preferredTestQuery将被忽略 你不能在这张Test表上进行任何操作 它将只供c p 测试   使用 Default: null >        <property name= automaticTestTable >Test</property>        <! 获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常 但是数据源仍有效   保留 并在下次调用getConnection()的时候继续尝试获取连接 如果设为true 那么在尝试   获取连接失败后该数据源将申明已断开并永久关闭 Default: false >        <property name= breakAfterAcquireFailure >false</property>        <! 当连接池用完时客户端调用getConnection()后等待获取新连接的时间 超时后将抛出   SQLException 如设为 则无限期等待 单位毫秒 Default: >        <property name= checkoutTimeout > </property>        <! 通过实现ConnectionTester或QueryConnectionTester的类来测试连接 类名需制定全路径         Default: mchange v c p impl DefaultConnectionTester >        <property name= connectionTesterClassName ></property>        <! 指定c p libraries的路径 如果(通常都是这样)在本地即可获得那么无需设置 默认null即可   Default: null >        <property name= factoryClassLocation >null</property>        <! Strongly disremended         Setting this to true may lead to subtle and bizarre bugs         (文档原文)作者强烈建议不使用的一个属性 >        <property name= forceIgnoreUnresolvedTransactions >false</property>        <! 每 秒检查所有连接池中的空闲连接 Default: >        <property name= idleConnectionTestPeriod > </property>        <! 初始化时获取三个连接 取值应在minPoolSize与maxPoolSize之间 Default: >        <property name= initialPoolSize > </property>        <! 最大空闲时间 秒内未使用则连接被丢弃 若为 则永不丢弃 Default: >        <property name= maxIdleTime > </property>        <! 连接池中保留的最大连接数 Default: >        <property name= maxPoolSize > </property>        <! JDBC的标准参数 用以控制数据源内加载的PreparedStatements数量 但由于预缓存的statements   属于单个connection而不是整个连接池 所以设置这个参数需要考虑到多方面的因素         如果maxStatements与maxStatementsPerConnection均为 则缓存被关闭 Default: >        <property name= maxStatements > </property>        <! maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数 Default: >        <property name= maxStatementsPerConnection ></property>        <! c p 是异步操作的 缓慢的JDBC操作通过帮助进程完成 扩展这些操作可以有效的提升性能        通过多线程实现多个操作同时被执行 Default: >        <property name= numHelperThreads > </property>        <! 当用户调用getConnection()时使root用户成为去获取连接的用户 主要用于连接池连接非c p    的数据源时 Default: null >         <property name= overrideDefaultUser >root</property>        <! 与overrideDefaultUser参数对应使用的一个参数 Default: null >        <property name= overrideDefaultPassword >password</property>        <! 密码 Default: null >        <property name= password ></property>        <! 定义所有连接测试都执行的测试语句 在使用连接测试的情况下这个一显著提高测试速度 注意    测试的表必须在初始数据源的时候就存在 Default: null >        <property name= preferredTestQuery >select id from test where id= </property>        <! 用户修改系统配置参数执行前最多等待 秒 Default: >        <property name= propertyCycle > </property>        <! 因性能消耗大请只在需要的时候使用它 如果设为true那么在每个connection提交的   时候都将校验其有效性 建议使用idleConnectionTestPeriod或automaticTestTable        等方法来提升连接测试的性能 Default: false >        <property name= testConnectionOnCheckout >false</property>        <! 如果设为true那么在取得连接的同时将校验连接的有效性 Default: false >        <property name= testConnectionOnCheckin >true</property>        <! 用户名 Default: null >        <property name= user >root</property>        在Hibernate(spring管理)中的配置         <bean id= dataSource class= mchange v c p ComboPooledDataSource destroy method= close >        <property name= driverClass ><value>oracle jdbc driver OracleDriver</value></property>        <property name= jdbcUrl ><value>jdbc:oracle:thin:@localhost: :Test</value></property>        <property name= user ><value>Kay</value></property>        <property name= password ><value>root</value></property>        <! 连接池中保留的最小连接数 >        <property name= minPoolSize value= />        <! 连接池中保留的最大连接数 Default: >        <property name= maxPoolSize value= />        <! 最大空闲时间 秒内未使用则连接被丢弃 若为 则永不丢弃 Default: >        <property name= maxIdleTime value= />        <! 当连接池中的连接耗尽的时候c p 一次同时获取的连接数 Default: >        <property name= acquireIncrement value= />        <property name= maxStatements value= />        <property name= initialPoolSize value= />        <! 每 秒检查所有连接池中的空闲连接 Default: >        <property name= idleConnectionTestPeriod value= />        <! 定义在从数据库获取新连接失败后重复尝试的次数 Default: >        <property name= acquireRetryAttempts value= />        <property name= breakAfterAcquireFailure value= true />        <property name= testConnectionOnCheckout value= false />        </bean> cha138/Article/program/Java/ky/201311/28773

相关参考

知识大全 抽取spring数据库连接部分到项目中

  用spring来管理项目的数据库部分往往比自己去写连接要容易管理的多步骤也比较简单  项目根目录下建立conflib目录将spring相关包coop到lib中并导入建立个文件jdbcpropert

知识大全 spring中连接池的配置

  在默认通过myeclipse生成的配置里spring使用的是apache的dbcp连接池  <beanid=dataSource  class=monsdbcpBasicDataSource

知识大全 Spring配C3P0连接池

Spring配C3P0连接池  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  applicatio

知识大全 数据库连接池java实现小结

  因为工作需要要使用到连接池所以拜读了互联网上众多前辈的文章学了不少经验这里想做一个小结加上自己的想法和在一起希望能给大家一些帮助    目的  消除数据库频繁连接带来的开销和瓶颈  解决方案  不

知识大全 jboss配置 mysql数据库连接池

jboss配置 mysql数据库连接池实例 :配置:   JDK    JBoss  &n

知识大全 c3po数据库连接池中取出连接

   <!使用连接池获得连接JNDI javanamedriinterfacejava命名目录接口>    

知识大全 Oracle数据库 关于连接池一

Oracle数据库关于连接池一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  到目前为目JDBC

知识大全 Oracle数据库 关于连接池二

Oracle数据库关于连接池二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  *大连接数为止在返

知识大全 Tomcat 的数据库连接池设置与应用

Tomcat的数据库连接池设置与应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!.将数据库驱动程

知识大全 数据库连接池Data Connection Framework

数据库连接池DataConnectionFramework  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一