Tomcat jdbc pool是apache在tomcat7版本中启用的新连接池,用它来解决以往DBCP无法解决的一些问题。

Tomcat jdbc pool的优点:

  (1)    tomcat jdbc pool 近乎兼容 dbcp ,性能更高

  (2)    异步方式获取连接

  (3)    tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架

  (4)    使用 javax.sql.PooledConnection 接口获取连接

  (5)    支持高并发应用环境

  (6)    超简单,核心文件只有8个,比 c3p0 还少

  (7)    更好的空闲连接处理机制

  (8)    支持 JMX

  (9)    支持 XA Connection

  Tomcat jdbc pool的使用仅需2个jar包,分别为tomcat-jdbc.jar和tomcat-juli.jar,这两个jar包都可以在tomcat7中找到,tomcat-jdbc.jar在tomcat的lib目录下,tomcat-juli.jar在bin目录下。

下面是我自己测试用的连接类:

package com.grtg.util;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties; import org.apache.tomcat.jdbc.pool.DataSource;
import org.apache.tomcat.jdbc.pool.PoolProperties; /**
* tomcat jdbc pool数据库连接池管理类
*
*/
public class DBUtil {
static DataSource dataSource = new DataSource(); static {
PoolProperties poolProperties = new PoolProperties();
Properties dbProperties = new Properties();
try {
dbProperties.load(DBUtil.class.getClassLoader().getResourceAsStream(配置文件地址));
//设置URL
poolProperties.setUrl(dbProperties.getProperty("url"));
//设置驱动名
poolProperties.setDriverClassName(dbProperties.getProperty("driver"));
//设置数据库用户名
poolProperties.setUsername(dbProperties.getProperty("username"));
//设置数据库密码
poolProperties.setPassword(dbProperties.getProperty("password"));
//设置初始化连接数
poolProperties.setInitialSize(Integer.valueOf(dbProperties.getProperty("initialSize"))); dataSource.setPoolProperties(poolProperties);
} catch (Exception e) {
throw new RuntimeException("初始化数据库连接池失败");
}
} private DBUtil() {
super();
} /**
* 获取数据库连接
* @return 数据库连接
*/
public static final Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException("获取数据库连接失败");
}
return conn;
} /**
* 关闭连接
*
* @param conn
* 需要关闭的连接
*/
public static void closeConnection(Connection conn) {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
throw new RuntimeException("关闭数据库连接失败");
}
}
}

下面是配置文件信息:

##############################MySQL数据库连接驱动##############################
#数据库连接URL
url=jdbc:mysql://localhost:3306/grtg?useUnicode=true&characterEncoding=utf8
#数据库连接驱动
driver=com.mysql.jdbc.Driver
#数据库连接用户名
username=root
#数据库连接密码
password=root
##############################MySQL数据库连接驱动END########################### ##############################连接池配置######################################
#初始化连接:连接池启动时创建的初始化连接数量
initialSize=10
#连接池的最大数据库连接数。设为0表示无限制
maxActive=50
#最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被释放。设为0表示无限制
maxIdle=10
#最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接
minIdle=5
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制
maxWait=1000
#超过removeAbandonedTimeout时间后,是否进 行没用连接(废弃)的回收(默认为false,调整为true)
removeAbandoned=true
#超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为180)
removeAbandonedTimeout=180
##############################连接池配置######################################

以上便是配置信息,诸位如果有好的见解可以提出,大家共同学习。

Tomcat jdbc pool配置的更多相关文章

  1. c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包

    [-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...

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

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

  3. spring配置tomcat jdbc pool数据库连接池

    <bean id="sqliteDataSource" class="org.apache.tomcat.jdbc.pool.DataSource" de ...

  4. 使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool

    Tomcat 在 7.0 以前的版本都是使用 commons-dbcp 做为连接池的实现,但是 dbcp 饱受诟病,原因有: dbcp 是单线程的,为了保证线程安全会锁整个连接池 dbcp 性能不佳 ...

  5. 连接池c3p0 ,Proxool ,Druid ,Tomcat Jdbc Pool对比测试

    这次所要做的测试是比较几种我们常用的数据库连接池的性能,他们分别是:c3p0 ,Proxool ,Druid ,Tomcat Jdbc Pool这四种,测试将采用统一的参数配置力求比较“公平”的体现统 ...

  6. tomcat jdbc pool

    文中内容主要转自:http://www.open-open.com/lib/view/open1327478028639.html http://www.open-open.com/lib/view/ ...

  7. DBCP,C3P0与Tomcat jdbc pool 连接池的比较

    hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置 ...

  8. Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari

    spring-configuration-metadata.json spring-boot-autoconfigure-2.0.0.M7.jar!/META-INF/spring-configura ...

  9. Class 'org.apache.tomcat.jdbc.pool.DataSource' not found

    把项目移动到新的运行环境时,明明包都导入了,项目也放进tomcat里面了,但是还会找不到该类 解决方法:项目右键选择底下的Properties ->project facets ->jav ...

随机推荐

  1. iOS横竖屏切换的一些坑(持续更新)

    最近在做视频类的App,遇到视频滚动播放的坑,紧接着就是横竖屏问题.之前太过天真不想做横竖屏配置.只是想旋转视频View,但是分享什么的包括AlertView还是竖屏样式,项目着急上线(1周提交一次也 ...

  2. [技术翻译]Guava官方文档Ordering

    关于排序 Guava的链式比较器 例子 assertTrue(byLengthOrdering.reverse().isOrdered(list)); 梗概 Ordering是Guava的链式比较器类 ...

  3. 跟我学android-android常用布局介绍

    在上一章我们曾经谈到,Android平台的界面 是使用XML的方式设计的,然后在上一章我们只做了一个简单的界面,在这章,我们将介绍如何使用常用的控件设计实用的界面. Android中的视图都是继承Vi ...

  4. linux进程创建

    1.  进程是程序的执行,会被加载到内存中,每个进程包括程序的代码和数据,其中数据包括程序的变量的数据,外部数据,程序堆栈. 2. Linux中,输入命令,如vi main.c 通过shell来执行, ...

  5. Qt中QWidget加入到父类QWidget不能显示的问题

    最近忙活了半天发现了一个不容易发现的问题,比如我有一个父类的自定义Widget,并且自己设置了Pattle,但这个时候我如果再在当前Widget内部加入自己的widget就不能正常显示,但是加QPus ...

  6. windows批处理命令之ren

    1.批处理批量修改文件后缀名(假设我需要把一个文件夹中的很多txt文件改为sql文件): 1)在需要被处理的文件的文件夹里先新建一个txt文本,然后在文本中写入: ren *.txt *.sql 2) ...

  7. java-二分查找法

    package search; public class BinarySearch { public static void main(String[] args) { , , , , , , , , ...

  8. FFT快速傅立叶

    Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n.第二行描述一个位数为n的正整数x.第三行描述一个位数为n的正整数y. Output 输出一行 ...

  9. jdbc(1)(一)

    1.连接数据库,准备mysql连接jar包导入项目: Class.forName("com.mysql.jdbc.Driver"); //建立连接是比较耗时,耗资源的,实际开发中多 ...

  10. PHP之路——MySql查询语句

    1,select查询的基本结构 select 字段 from 表 where 过滤条件 group by 分组条件 having 过滤的第二条件 order by 排序条件 limit 限定结果条件; ...