当前位置:Gxlcms > 数据库问题 > SpringMVC数据库连接配置大全

SpringMVC数据库连接配置大全

时间:2021-07-01 10:21:17 帮助过:4人阅读

此文件中有dbcp、c3p0、druid三种配置方式

1. dbConfig.properties 文件

  1. <code>#----------------数据库连接基本配置---------------
  2. #数据库驱动
  3. dataSource.driverClassName=com.mysql.jdbc.Driver
  4. #数据库连接地址
  5. dataSource.url=jdbc\:mysql\://127.0.0.1\:3306/qfx_activiti_test?characterEncoding\=UTF-8
  6. #用户名
  7. dataSource.userName=root
  8. #密码
  9. dataSource.passWord=666666
  10. #SQL查询,在将连接返回给调用者之前,用来验证从连接池取出的连接是否有效
  11. dataSource.validationQuery=select 1
  12. #----------------dbcp连接池配置-----------------
  13. #初始连接数量
  14. dbcp.initialSize=5
  15. #最大连接数量
  16. dbcp.maxActive=50
  17. #最小空闲连接数量
  18. dbcp.minIdle =5
  19. #最大空闲连接数量
  20. dbcp.maxIdle=20
  21. #最大等待连接时间(以毫秒计数,1000等于60秒)
  22. dbcp.maxWait=1000
  23. #连接超时是否自动回收
  24. dbcp.removeAbandoned=true
  25. #每隔一定时间去检测一次空闲连接是否超时(毫秒),默认值为-1,即不开启
  26. dbcp.timeBetweenEvictionRunsMillis=60000
  27. #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(毫秒)
  28. dbcp.minEvictableIdleTimeMillis=59000
  29. #后台对象清理时,每次检查几个连接,建议设置和maxActive一样大,这样每次可以有效检查所有的连接
  30. dbcp.numTestsPerEvictionRun=50
  31. #定时对线程池中的连接进行校验,对无效的链接进行关闭后,会适当建立连接保证最小的minIdle连接数
  32. dbcp.testWhileIdle=true
  33. #----------------c3p0连接池配置-----------------
  34. #连接池中保留的最小连接数.默认为:3
  35. c3p0.minPoolSize=10
  36. #连接池中保留的最大连接数.默认为:15
  37. c3p0.maxPoolSize=100
  38. #初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值.默认为3
  39. c3p0.initialPoolSize=10
  40. #最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0
  41. c3p0.maxIdleTime=60
  42. #JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量,如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。默认值:0
  43. c3p0.maxStatements=6000
  44. #定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0
  45. c3p0.maxStatementsPerConnection=0
  46. #每60秒检查所有连接池中的空闲连接.默认值:0,不检查
  47. c3p0.idleConnectionTestPeriod=1800
  48. #当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值:3
  49. c3p0.acquireIncrement=5
  50. #定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度
  51. c3p0.preferredTestQuery=select 1
  52. #c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成.扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行.默认值:3
  53. c3p0.numHelperThreads=3
  54. #----------------druid连接池配置-----------------
  55. #属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall
  56. druid.filters=stat
  57. #最大并发连接数
  58. druid.maxActive=20
  59. #初始化连接数量
  60. druid.initialSize=1
  61. #配置获取连接等待超时的时间
  62. druid.maxWait=60000
  63. #最小空闲连接数
  64. druid.minIdle=10
  65. #最大空闲连接数
  66. druid.maxIdle=15
  67. #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  68. druid.timeBetweenEvictionRunsMillis=60000
  69. #配置一个连接在池中最小生存的时间,单位是毫秒
  70. druid.minEvictableIdleTimeMillis=300000
  71. #建议配置为true,不影响性能,并且保证安全性.申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效.
  72. druid.testWhileIdle=true
  73. #申请连接时执行validationQuery检测连接是否有效,这里建议配置为true,防止取到的连接不可用,但会降低性能,默认值:true
  74. druid.testOnBorrow=true
  75. #归还连接时执行validationQuery检测连接是否有效,会降低性能,默认值:false
  76. druid.testOnReturn=false
  77. #缓存preparedStatement,也就是PSCache,对支持游标的数据库性能提升巨大,比如说oracle,在mysql5.5以下的版本中没有PSCache功能,建议关闭掉,5.5及以上版本有PSCache,建议开启
  78. druid.maxOpenPreparedStatements=20
  79. </code>

2. applicationContext-dataSources.xml 配置文件

  1. <code><?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="
  6. http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. ">
  9. <!-- 1 引用数据库连接配置文件 -->
  10. <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  11. <property name="locations">
  12. <list>
  13. <value>classpath:dbConfig.properties</value>
  14. </list>
  15. </property>
  16. </bean>
  17. <!-- 2.1 配置tomcat dbcp连接池,destroy-method="close"是将用完的connect重新放回连接池 -->
  18. <bean id="dbcpDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  19. <!-- 数据库基本信息配置 -->
  20. <property name="driverClassName" value="${dataSource.driverClassName}" />
  21. <property name="url" value="${dataSource.url}" />
  22. <property name="username" value="${dataSource.userName}" />
  23. <property name="password" value="${dataSource.passWord}" />
  24. <!-- 配置验证连接有效与否的SQL,不同的数据库配置不同 -->
  25. <property name="validationQuery" value="${dataSource.validationQuery}" />
  26. <!-- 初始连接 -->
  27. <property name="initialSize" value="${dbcp.initialSize}" />
  28. <!-- 最大连接 -->
  29. <property name="maxActive" value="${dbcp.maxActive}" />
  30. <!--最小空闲连接-->
  31. <property name="minIdle" value="${dbcp.minIdle}" />
  32. <!-- 最大空闲连接 -->
  33. <property name="maxIdle" value="${dbcp.maxIdle}" />
  34. <!-- 最大等待连接(以毫秒计数) -->
  35. <property name="maxWait" value="${dbcp.maxWait}" />
  36. <!--连接超时是否自动回收-->
  37. <property name="removeAbandoned" value="${dbcp.removeAbandoned}" />
  38. <!-- 每隔一定时间去检测一次空闲连接是否超时(毫秒),默认值为-1,即不开启 -->
  39. <property name="timeBetweenEvictionRunsMillis" value="${dbcp.timeBetweenEvictionRunsMillis}" />
  40. <!-- 连接池中连接,在时间段内一直空闲,被逐出连接池的时间(毫秒) -->
  41. <property name="minEvictableIdleTimeMillis" value="${dbcp.minEvictableIdleTimeMillis}" />
  42. <!-- 后台对象清理时,每次检查几个连接,建议设置和maxActive一样大,这样每次可以有效检查所有的连接 -->
  43. <property name="numTestsPerEvictionRun" value="${dbcp.numTestsPerEvictionRun}" />
  44. <!-- 定时对线程池中的连接进行校验,对无效的链接进行关闭后,会适当建立连接保证最小的minIdle连接数 -->
  45. <property name="testWhileIdle" value="${dbcp.testWhileIdle}" />
  46. </bean>
  47. <!-- 2.2 配置c3p0连接池,destroy-method="close"是将用完的connect重新放回连接池 -->
  48. <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  49. <property name="driverClass" value="${dataSource.driverClassName}" />
  50. <property name="jdbcUrl" value="${dataSource.url}" />
  51. <property name="user" value="${dataSource.userName}" />
  52. <property name="password" value="${dataSource.passWord}" />
  53. <!--定义所有连接测试都执行的测试语句.在使用连接测试的情况下这个一显著提高测试速度 -->
  54. <property name="preferredTestQuery" value="${dataSource.validationQuery}" />
  55. <!--连接池中保留的最小连接数.默认为:3-->
  56. <property name="minPoolSize" value="${c3p0.minPoolSize}" />
  57. <!--连接池中保留的最大连接数.默认为:15 -->
  58. <property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
  59. <!--初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值.默认为3 -->
  60. <property name="initialPoolSize" value="${c3p0.initialPoolSize}" />
  61. <!--最大空闲时间,60秒内未使用则连接被丢弃.若为0则永不丢弃.默认值: 0 -->
  62. <property name="maxIdleTime" value="${c3p0.maxIdleTime}" />
  63. <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量,如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭.默认值:0-->
  64. <property name="maxStatements" value="${c3p0.maxStatements}" />
  65. <!--定义了连接池内单个连接所拥有的最大缓存statements数.默认值:0 -->
  66. <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}" />
  67. <!--每60秒检查所有连接池中的空闲连接.默认值:0,不检查-->
  68. <property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}" />
  69. <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.默认值:3 -->
  70. <property name="acquireIncrement" value="${c3p0.acquireIncrement}" />
  71. <!--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成.扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行.默认值:3-->
  72. <property name="numHelperThreads" value="${c3p0.numHelperThreads}" />
  73. </bean>
  74. <!-- 2.3 配置阿里 druid数据库连接池,destroy-method="close"是将用完的connect重新放回连接池 -->
  75. <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
  76. <!-- 数据库基本信息配置 -->
  77. <property name="driverClassName" value="${dataSource.driverClassName}" />
  78. <property name="url" value="${dataSource.url}" />
  79. <property name="username" value="${dataSource.userName}" />
  80. <property name="password" value="${dataSource.passWord}" />
  81. <!-- 配置验证连接有效与否的SQL,不同的数据库配置不同 -->
  82. <property name="validationQuery" value="${dataSource.validationQuery}" />
  83. <!-- 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall -->
  84. <property name="filters" value="${druid.filters}" />
  85. <!-- 最大并发连接数 -->
  86. <property name="maxActive" value="${druid.maxActive}" />
  87. <!-- 初始化连接数量 -->
  88. <property name="initialSize" value="${druid.initialSize}" />
  89. <!-- 配置获取连接等待超时的时间 -->
  90. <property name="maxWait" value="${druid.maxWait}" />
  91. <!-- 最小空闲连接数 -->
  92. <property name="minIdle" value="${druid.minIdle}" />
  93. <!-- 最大空闲连接数 -->
  94. <!-- <property name="maxIdle" value="${druid.maxIdle}" /> -->
  95. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  96. <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
  97. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  98. <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
  99. <!-- 建议配置为true,不影响性能,并且保证安全性.申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效. -->
  100. <property name="testWhileIdle" value="${druid.testWhileIdle}" />
  101. <!-- 申请连接时执行validationQuery检测连接是否有效,这里建议配置为TRUE,防止取到的连接不可用,但会降低性能,默认值:true-->
  102. <property name="testOnBorrow" value="${druid.testOnBorrow}" />
  103. <!-- 归还连接时执行validationQuery检测连接是否有效,会降低性能,默认值:false -->
  104. <property name="testOnReturn" value="${druid.testOnReturn}" />
  105. <!-- 缓存preparedStatement,也就是PSCache,对支持游标的数据库性能提升巨大,比如说oracle,在mysql5.5以下的版本中没有PSCache功能,建议关闭掉,5.5及以上版本有PSCache,建议开启 -->
  106. <property name="maxOpenPreparedStatements" value="${druid.maxOpenPreparedStatements}" />
  107. </bean>
  108. </beans></code>

3. applicationContext-TransactionManager.xml 配置文件

  1. <code><?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:aop="http://www.springframework.org/schema/aop"
  7. xsi:schemaLocation="
  8. http://www.springframework.org/schema/beans
  9. http://www.springframework.org/schema/beans/spring-beans.xsd
  10. http://www.springframework.org/schema/tx
  11. http://www.springframework.org/schema/tx/spring-tx.xsd
  12. http://www.springframework.org/schema/aop
  13. http://www.springframework.org/schema/aop/spring-aop.xsd
  14. ">
  15. <!-- aspect注解生效,激活自动代理功能,如果不使用,可以删除此配置 -->
  16. <aop:aspectj-autoproxy proxy-target-class="true" />
  17. <!-- 配置事物管理器 -->
  18. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
  19. <!-- 注入数据库连接池,mybatis的sqlSessionFactory中的配置需要与这里保持一致 -->
  20. <property name="dataSource" ref="dbcpDataSource" />
  21. <!-- <property name="dataSource" ref="c3p0DataSource" /> -->
  22. <!-- <property name="dataSource" ref="druidDataSource" /> -->
  23. </bean>
  24. <!-- 配置事物的传播特性 -->
  25. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  26. <tx:attributes>
  27. <tx:method name="add*" propagation="REQUIRED"/>
  28. <tx:method name="create*" propagation="REQUIRED"/>
  29. <tx:method name="insert*" propagation="REQUIRED"/>
  30. <tx:method name="save*" propagation="REQUIRED"/>
  31. <tx:method name="find*" propagation="REQUIRED"/>
  32. <tx:method name="get*" propagation="REQUIRED"/>
  33. <tx:method name="update*" propagation="REQUIRED"/>
  34. <tx:method name="delete*" propagation="REQUIRED"/>
  35. <tx:method name="remove*" propagation="REQUIRED"/>
  36. </tx:attributes>
  37. </tx:advice>
  38. <!-- 哪些类的哪些方法参与事物 -->
  39. <aop:config>
  40. <!-- 匹配指定包下(递归)所有类所有方法,返回值匹配任何情况 -->
  41. <aop:pointcut id="allManagerMethod" expression="execution(* com.qfx.*.*.services.impl..*.*(..))"/>
  42. <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
  43. </aop:config>
  44. </beans></code>

4. SpringMVC主配置文件applicationContext.xml

  1. <code><?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. ">
  12. <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
  13. <context:component-scan base-package="com.qfx">
  14. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
  15. </context:component-scan>
  16. <import resource="applicationContext-dataSources.xml"/>
  17. <import resource="applicationContext-TransactionManager.xml"/>
  18. </beans></code>

SpringMVC数据库连接配置大全

标签:not   cte   oracl   加载   返回   mysq   auto   create   使用   

人气教程排行