详解springboot 使用c3p0数据库连接池的方法
使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。
引入的maven依赖:
<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency>
c3p0的配置信息,写到application.properties配置文件中,需要注意的是,c3p0的数据库用户名是user不是username:
c3p0.jdbcUrl=jdbc:mysql://ip:port/dnname?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false c3p0.user=${username} c3p0.password=${password} c3p0.driverClass=com.mysql.jdbc.Driver c3p0.minPoolSize=2 c3p0.maxPoolSize=10 c3p0.maxIdleTime=1800000 c3p0.acquireIncrement=3 c3p0.maxStatements=1000 c3p0.initialPoolSize=3 c3p0.idleConnectionTestPeriod=60 c3p0.acquireRetryAttempts=30 c3p0.acquireRetryDelay=1000 c3p0.breakAfterAcquireFailure=false c3p0.testConnectionOnCheckout=false
springboot配置c3p0数据源datasource:
@Configuration public class DatasourceConfiguration { @Bean(name = "dataSource") @Qualifier(value = "dataSource") @Primary @ConfigurationProperties(prefix = "c3p0") public DataSource dataSource() { return DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build(); } }
对于其他的一些数据源也可使用类似方式,当然有些数据源springboot提供了更加简洁的方式,需要参数官方文档。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python MySQL数据库连接池组件pymysqlpool详解
引言 pymysqlpool (本地下载)是数据库工具包中新成员,目的是能提供一个实用的数据库连接池中间件,从而避免在应用中频繁地创建和释放数据库连接资源. 功能 连接池本身是线程安全的,可在多线程环境下使用,不必担心连接资源被多个线程共享的问题: 提供尽可能紧凑的接口用于数据库操作: 连接池的管理位于包内完成,客户端可以通过接口获取池中的连接资源(返回 pymysql.Connection): 将最大程度地与 dataobj 等兼容,便于使用: 连接池本身具备动态增加连接数的功能,即 max_
-
关于数据库连接池Druid使用说明
根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池. Druid:druid-1.0.29 数据库 Mysql.5.6.17 替换目标:替换掉C3P0,用druid来替换 替换原因: 1.性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 .hikariCP的高性能得益于最大限度的避免锁竞争. 2.druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性. 3.综合性能,扩展性等方面,可考虑使用druid或
-
Spring 数据库连接池(JDBC)详解
数据库连接池 对一个简单的数据库应用,由于对数据库的访问不是很频繁,这时可以简单地在需要访问数据库时,就新创建一个连接,就完后就关闭它,这样做也不会带来什么性能上的开销.但是对于一个复杂的数据库应用,情况就完全不同而,频繁的建立.关闭连接,会极大地减低系统的性能,因为对于连接的使用成了系统性能的瓶颈. 通过建立一个数据库连接池以及一套连接使用管理策略,可以达到连接复用的效果,使得一个数据库连接可以得到安全.高效的复用,避免了数据库连接频繁建立.关闭的开销. 数据库连接池的基本原理是在内部对象池中
-
Java 数据库连接池详解及简单实例
Java 数据库连接池详解 数据库连接池的原理是: 连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象.使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用.而连接的建立.断开都由连接池自身来管理.同时,还可以通过设置连接池的参数来控制连接池中的初始连接数.连接的上下限数以及每个连接的最大使用次数.最大空闲时间等等.也可以通过其自身的管理机制来监视数据库连接的
-
Tomcat 7-dbcp配置数据库连接池详解
Tomcat 7-dbcp配置数据库连接池详解 原理 关于连接池,大家都晓得用来限定对数据库的连接.基本的原理是预先在缓冲池中放入一定的空闲连接,当程序需要和数据库来交互时,不是直接新建数据库连接而是在连接池中直接取,使用完成后再放回到连接池中.为什么要这样牺牲一个缓冲来存放这些原本就会使用的连接呢?在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机:额外有了这样一个连接池,也可以来监听这些连接和便于管理. 配置 1.拷贝相关的jar 要知道连接池不是用来直接操作数据库的
-
java使用dbcp2数据库连接池
在开发中中我们经常会使用到数据库连接池,比如dbcp数据库连接池,本章将讲解java连接dbcp数据库库连接池的简单使用. 开发工具myeclipse2014 1.首先创建一个web项目,我把项目名取名为testjdbc,需要带有web.xml的配置文件,进行servlet的配置,创建完成以后的项目结构如下: 2.创建包,我创建的包名是com.szkingdom.db 3.创建帮助类CastUtil,代码如下: package com.szkingdom.db; /** * Created by
-
详解springboot 使用c3p0数据库连接池的方法
使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了.所以使用c3p0连接池吧. 引入的maven依赖: <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> c3p0的配置信息,写到
-
详解SpringBoot读取配置文件的N种方法
我们在项目开发中经常会用到配置信息,例如数据库连接的帐号.密码等,而为了方便维护,我们通常将这些信息放到配置文件中.在需要用到这些配置信息时,可以通过代码获取.下面我们看看Spring中有哪些获取配置信息的方法. PropertiesLoaderUtils读取 通过ClassPathResource加载配置文件资源,结合PropertiesLoaderUtils类读取,源码如下: ClassPathResource resource = new ClassPathResource("applic
-
SpringBoot整合Druid数据库连接池的方法
一,Druid是什么? Druid是Java语言中最好的数据库连接池.Druid能够提供强大的监控和扩展功能. 二, 在哪里下载druid maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/ 三, 怎么获取Druid的源码 Druid是一个开源项目,源码托管在github上,源代码仓库地址是 https://github.com/alibaba/druid.同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从
-
详解SpringBoot 统一后端返回格式的方法
目录 为什么要对SpringBoot返回统一的标准格式 定义返回标准格式 定义返回对象 定义状态码 统一返回格式 高级实现方式 接口异常问题 SpringBoot为什么需要全局异常处理器 如何实现全局异常处理器 体验效果 全局异常接入返回的标准格式 首先我们来看看为什么要返回统一的标准格式? 为什么要对SpringBoot返回统一的标准格式 在默认情况下,SpringBoot的返回格式常见的有三种: 第一种:返回 String @GetMapping("/hello") public
-
详解springboot+atomikos+druid 数据库连接失效分析
目录 一.起因 二.Druid数据库连接池 三.Atomikos框架 四.分析与总结 一.起因 最近查看系统的后台日志,经常发现这样的报错信息:The last package successfully received from the server was 40802382 milliseconds ago,截图如下所示. 由于我们的系统都是在白天使用,夜里基本上没有用户使用,再加上以上的报错信息都是出现在早晨,结合错误日志初步分析,应该是数据库连接超时自动断开了.百度一番后,得知Mysql
-
使用XML配置c3p0数据库连接池
本文实例为大家分享了使用XML配置c3p0数据库连接池的具体代码,供大家参考,具体内容如下 想通过JDBC来配置c3p0数据库连接池,上网想找到解析工具没有找到,只要自己写了一个,可以读取在根目录下的c3p0配置文档,再根据配置信息来反射ComboPooledDataSource 中的setter进行连接池的配置. 本人水平很菜,如果有什么不足请大家指出. package cn.vagasnail.sgms.util; import java.lang.reflect.InvocationTar
-
详解SpringBoot 应用如何提高服务吞吐量
意外和明天不知道哪个先来.没有危机是最大的危机,满足现状是最大的陷阱. 背景 生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议. 方案 1.undertow替换tomcat 电子商务类型网站大多都是短请求,一般响应时间都在100ms,这时可以将web容器从tomcat替换为undertow,下面介绍下步骤: 1.增加pom配置 <dependency> <groupid> org.springframework.boot </groupid>
-
详解SpringBoot Redis自适应配置(Cluster Standalone Sentinel)
核心代码段 提供一个JedisConnectionFactory 根据配置来判断 单点 集群 还是哨兵 @Bean @ConditionalOnMissingBean public JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = null; String[] split = node.split(","); Set<HostAndPort> nodes =
-
详解SpringBoot基于Dubbo和Seata的分布式事务解决方案
1. 分布式事务初探 一般来说,目前市面上的数据库都支持本地事务,也就是在你的应用程序中,在一个数据库连接下的操作,可以很容易的实现事务的操作. 但是目前,基于SOA的思想,大部分项目都采用微服务架构后,就会出现了跨服务间的事务需求,这就称为分布式事务. 本文假设你已经了解了事务的运行机制,如果你不了解事务,那么我建议先去看下事务相关的文章,再来阅读本文. 1.1 什么是分布式事务 对于传统的单体应用而言,实现本地事务可以依赖Spring的@Transactional注解标识方法,实现事务非常简
-
详解PHP中的数据库连接持久化
PHP中的数据库连接持久化 数据库的优化是我们做web开发的重中之重,甚至很多情况下其实我们是在面向数据库编程.当然,用户的一切操作.行为都是以数据的形式保存下来的.在这其中,数据库的连接创建过程有没有什么可以优化的内容呢?答案当然是有的,Java等语言中有连接池的设定,而PHP在普通开发中并没有连接池这种东西,在牵涉到多线程的情况下往往才会使用连接池的技术,所以PHP每次运行都会创建新的连接,那么这种情况下,我们如何来优化数据连接呢? 什么是数据库连接持久化 我们先来看下数据库连接持久化的定义
随机推荐
- 基于java servlet过滤器和监听器(详解)
- 浅谈Vim中的Tab与空格缩进
- 收集的48个Shell脚本小技巧
- SQL2005查看死锁存储过程sp_who_lock
- Java中接口和抽象类的区别与相同之处
- 用WPF实现屏幕文字提示的实现方法
- php array_unique之后json_encode需要注意
- THINKPHP+JS实现缩放图片式截图的实现
- PHP实现生成唯一编号(36进制的不重复编号)
- Android 手势 正则匹配图片实例代码
- Android实现修改状态栏背景、字体和图标颜色的方法
- javascript简易缓动插件(源码打包)
- 屏蔽PHP默认设置中的Notice警告的方法
- Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
- 表格标签table深入了解
- jquery异步请求实例代码
- js分页显示div的内容
- prototype与__proto__区别详细介绍
- 基于jquery可配置循环左右滚动例子
- 33个优秀的 jQuery 图片展示插件分享