常用数据库连接池的配置
来源:互联网 发布:apache activemq 编辑:程序博客网 时间:2024/06/06 13:11
1.阿里巴巴-德鲁伊druid连接池配置
1.1、简介:
Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。
1.2、Druid支持哪些数据库?
Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。
Druid针对Oracle和MySql做了特别优化,比如Oracle的PS Cache内存占用优化,MySql的ping检测优化。
Druid针对Oracle和MySql做了特别优化,比如Oracle的PS Cache内存占用优化,MySql的ping检测优化。
1.3、基本配置
<!-- 数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><!-- 数据库基本信息配置 --> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_user}" /> <property name="password" value="${jdbc_password}" /> <!-- 初始化连接数量 --><property name="initialSize" value="${druid.initialSize}" /><!-- 最大并发连接数 --><property name="maxActive" value="${druid.maxActive}" /><!-- 最大空闲连接数 :已经不再使用,配置了也没效果--><!-- <property name="maxIdle" value="${druid.maxIdle}" /> --><!-- 最小空闲连接数 --><property name="minIdle" value="${druid.minIdle}" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="${druid.maxWait}" /><!-- 超过时间限制是否回收 --><property name="removeAbandoned" value="${druid.removeAbandoned}" /><!-- 超过时间限制多长; --><property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" /><!-- 用来检测连接是否有效的sql,要求是一个查询语句--><property name="validationQuery" value="${druid.validationQuery}" /><!-- 申请连接的时候检测 --><property name="testWhileIdle" value="${druid.testWhileIdle}" /><!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnBorrow" value="${druid.testOnBorrow}" /><!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnReturn" value="${druid.testOnReturn}" /><!-- 打开PSCache,并且指定每个连接上PSCache的大小 --><property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" /><property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" /><!--属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat日志用的filter:log4j 防御SQL注入的filter:wall --><property name="filters" value="${druid.filters}" /></bean><!-- 配置sqlsessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:mybatis/sqlMapConfiger.xml"></property><property name="mapperLocations" value="classpath*:/com/sun/blog/sqlMap/**/*Mapper.xml"></property> </bean>
属性配置文件:
driverClassName = com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://127.0.0.1:3306/blog?Unicode=true&characterEncoding=utf8#jdbc_user=rootjdbc_password=1127druid.initialSize = 5druid.maxActive = 10druid.minIdle = 3druid.maxWait = 60000druid.removeAbandoned = truedruid.removeAbandonedTimeout = 180druid.timeBetweenEvictionRunsMillis = 60000druid.minEvictableIdleTimeMillis = 300000druid.validationQuery = SELECT 1 FROM DUALdruid.testWhileIdle = true druid.testOnBorrow = falsedruid.testOnReturn = false#mysql一般配置为falsedruid.poolPreparedStatements = falsedruid.maxPoolPreparedStatementPerConnectionSize = 50druid.filters = stat2、HikariCP数据库连接池
2.1、简介
HikariCP 是一个高性能的 JDBC 连接池组件。下图是性能的比较测试结果:
2.2、配置
<!-- 数据库连接池 --><bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> <property name="poolName" value="SpringHikariCP"/> <!-- 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) --> <property name="maximumPoolSize" value="${jdbc.maximumPoolSize}"/> <!-- 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 --> <property name="idleTimeout" value="${jdbc.idleTimeout}"/> <!-- 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) --> <property name="maxLifetime" value="${jdbc.maxLifetime}" /> <property name="connectionTestQuery" value="${jdbc.connectionTestQuery}"/> <property name="dataSourceClassName" value="${jdbc.dataSourceClassName}"/> <property name="dataSourceProperties"> <props> <prop key="url">${jdbc.url}</prop> <prop key="user">${jdbc.username}</prop> <prop key="password">${jdbc.password}</prop> </props> </property> </bean> <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <constructor-arg ref="hikariConfig"/> </bean><!-- 配置sqlsessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:mybatis/sqlMapConfiger.xml"></property><property name="mapperLocations" value="classpath*:/com/sun/blog/sqlMap/**/*Mapper.xml"></property> </bean>属性配置文件:#数据库连接池的配置#jdbc.dataSourceClassName=oracle.jdbc.pool.OracleDataSource#jdbc.url=jdbc:oracle:thin:@10.101.205.3:1521:orcl4#属性驱动自动识别jdbc.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSourcejdbc.url=jdbc:mysql://127.0.0.1:3306/blog?Unicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=1127jdbc.maximumPoolSize=10jdbc.idleTimeout=30000jdbc.maxLifetime=1800000jdbc.connectionTestQuery=SELECT 1 from dual
0 0
- 常用数据库连接池的配置
- 常用的数据库连接池的配置
- springBoot数据库连接池常用配置
- 常用的数据库连接池
- 数据库连接池(常用的)
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池的配置
- 数据库连接池C3P0最常用配置
- 常用数据库连接配置
- java常用的数据库连接池
- Java常用的数据库连接池
- 常用的数据库连接池技术
- 自定义校验器实例
- LintCode 跳跃游戏 解答
- java 获取邮件数据
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Python 连接 百度语音 服务
- 常用数据库连接池的配置
- Robot Framework安装部署详细教程(Windows7 64位)
- MongoDB常用命令以及数据类型
- RTP协议分析
- android.content.res.Resources$NotFoundException: String resource ID
- thinkphp目录结构
- Java 常用排序算法 附java实现
- 03.Mybatis初级使用-配置文件
- 原型与原型链prototype与_proto_