最近维护的一个项目出了问题,最后分析是卡在数据库连接池上,然后就做了些学习。

先把我自己的方法写出来,再说下网上其他的没有成功的方法。

1、首先当然是先把mysql的jar包放在lib目录下,toncat的或者自己项目的lib下都可以。

2、在tomcat的conf目录下的server.xml里添加如下内容,要添加在 <Host></Host>之间

<Context path="/myexample" docBase="myexample" crossContext="true">
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
username="root"
password="root"
maxActive="850"
maxidle="80"
removeAbandoned="true"
removeAbandonedTimeout="5"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?autoReconnect=true"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"/>
</Context>

或者在 Tomcat 的 conf\Catalina\localhost 下新建一个 项目名.xml 文件 (推荐这个方式)

里面的内容为

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myexample" docBase="myexample" crossContext="true">
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
username="root"
password="root"
maxActive="850"
maxidle="80"
maxWait="10000"
removeAbandoned="true"
removeAbandonedTimeout="5"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?autoReconnect=true"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"/>
</Context>

下面对里面几个比较重要的参数进行一下说明:
name:表示你的连接池的名称也就是你要访问连接池的地址
auth:是连接池管理权属性,Container表示容器管理
type:是对象的类型
driverClassName:是数据库驱动的名称
url:是数据库的地址
username:是登陆数据库的用户名
password:是登陆数据库的密码
maxActive:最大连接数据库连接数,设 0 为没有限制
maxIdle:最大等待连接中的数量,超过空闲时间,数据库连 接将被标记为不可用,然后被释放。设为0表示无限制。 
maxWait:最大建立连接等待时间, 单位为 ms, 如果超过此时间将接到异常。设为-1表示 无限制。 
一般把maxActive设置成可能的并发量就行了

然后配置就完成了,下面就是使用。

try {
// 初始化查找命名空间
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
// 找到DataSource
DataSource ds = (DataSource)envContext.lookup("jdbc/mysql");
Connection connection = ds.getConnection();

……之后就和普通的数据库连接使用是一样的。

}catch(Exception ex) {

  out.println(ex.toString());

}

最好用try catch 包裹下。

下面说下网上看的别的没有成功的,有的说在项目目录的META-INF 目录下建一个content.xml放上上面的内容,我试了,没成功。

还有的说需要应用程序下的web.xml中的之间加入:

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

我试了,加不加这个没什么影响。

不成功或没影响的可能和版本有关,我没有试他们说的那个6.0的版本,我用的8.*的版本。

Tomcat 下 mysql的连接池配置和使用的更多相关文章

  1. hibernate+mysql的连接池配置

    1:连接池的必知概念    首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了. 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的 ...

  2. mysql HikariCP连接池配置

    #连接池配置 #最小空闲连接,默认值10,小于0或大于maximum-pool-size,都会重置为maximum-pool-size spring.datasource.hikari.minimum ...

  3. Python下Mysql数据连接池——单例

    # coding:utf-8 import threading import pymysql from DBUtils.PooledDB import PooledDB from app.common ...

  4. Java Mysql连接池配置和案例分析--超时异常和处理

    前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...

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

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

  6. 【Mysql】SpringBoot阿里Druid数据源连接池配置

    一.pom.xml添加 <!-- 配置数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> &l ...

  7. web 连接池配置

    TOMCAT J2EE项目连接池配置 web 项目的 web.xml <web-app> <resource-ref> <description>DB Connec ...

  8. [JavaEE] Hibernate连接池配置测试

    转载自51CTO http://developer.51cto.com/art/200906/129914.htm Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以 ...

  9. 6.13-C3p0连接池配置,DBUtils使用

    DBCP连接池 一.C3p0连接池配置 开源的JDBC连接池 使用连接池的好处: 减轻数据库服务器压力 数据源: ComboPooledDataSource ComboPooledDataSource ...

随机推荐

  1. JAVA-Word转PDF各种版本实现方式

    当下做一个项目,就是各种操作office,客户的需求总是各种不按常理,来需求就得搞啊.对JAVA操作office这方面真是头大,弟弟是真滴不懂不会啊.无奈只好试啊试的.网上一大堆好使的,一大堆不好使的 ...

  2. java中Keytool的使用总结 (加密 密钥(key)和证书(certificates))

    http://blog.chinaunix.net/uid-17102734-id-2830223.html

  3. Psql 安装问题

    在openerp安装过程中报错: psql: could not connect to server: No such file or directory Is the server running ...

  4. C语言 · 打印1~100间的质数(素数)

    算法提高 c++_ch02_04   时间限制:1.0s   内存限制:256.0MB      问题描述 输出1~100间的质数并显示出来.注意1不是质数. 输出格式 每行输出一个质数. 2 3 . ...

  5. error: No implicit Ordering defined for Any

    scala中经常遇到最头疼的问题,就是类型不匹配或者带Any,Option的提示错误信息. 最近碰到的是取最大值,但是明明已经Long类型的,却提示下面这个错误信息. 相关的源程序如下: // 获取o ...

  6. Flowplayer-一款免费的WEB视频播放器(转)

    Flowplayer 是一个开源(GPL 3的)WEB视频播放器.您可以将该播放器嵌入您的网页中,如果您是开发人员,您还可以自由定制和配置播放器相关参数以达到您要的播放效果.本文主要介绍Flowpla ...

  7. zend stdio 快捷键

    1.快速跳转到当前所指的函数.变量.方法.类的定义处 F3或者 ctrl+鼠标左键2.ctrl+m 编辑窗口最大化3.ctrl+d 删除当前行4.ctrl+q 定位到最后编辑的地方(全局的)5.ctr ...

  8. 微信小程序 - 开发工具之编译模式

    在开发中,遇到一个层级较深的页面,每次都要点击好多步才能调试,也比较闹心,有了自定义编译模式,就方便很多了 点击红圈处, 选择 "+添加编译模式" , 默认的, 启动页面会填入当前 ...

  9. 考虑下面两个JSP文件代码片断: test1.jsp:

    <HTML> <BODY> <% pageContext.setAttribute(”ten”,new Integer(10));%> //1 </BODY& ...

  10. Struts框架可以支持以下哪种程序开发语言?(选择1项)

    A.C B.C++ C.Java D.C# 解答:C