一.设计测试用的数据库

1.新建数据库

create database testmysql;

2.新建一个用户信息数据表

create table test(

username varchar(20) primary key,

password varchar(20));

3.给新表插入数据信息

insert into test values('keivn','123456');

二. 设计局部数据源和连接池

1.在webapps目录中新建test目录,然后在test中分别新建WEB-INF和META-INF目录,在WEB-INF目录中新建classes和lib目录,将mysql数据库驱动文.jar放进lib目录中这里我使用的版本是mysql-connector-java-5.1.22-bin.jar

2.在META-INF目录中新建context.xml文件,然后将下面内容复制,保存

<?xml version='1.0' encoding='utf-8'?>

<Context>

<Resource name="jdbc/mysql"

auth="Container"

driverClassName="com.mysql.jdbc.Driver"

type="javax.sql.DataSource"

url="jdbc:mysql://localhost:3306/testmysql"

username="root"

password="123456"

maxActive="100"

maxIdle="30"

maxWait="10000" />

</Context>

context.xml中的参数的解析如下:

name属性是数据源名称,通常采取jdbc/**.

type属性是数据源方式。

driverClassName属性是驱动程序名称。

username,password,数据库名称和密码

url:访问的数据库路径。

maxActive属性是并发连接的最大数。设置为0则无限制。

maxWait属性是等待连接的最大连接的时间。

maxIdle属性是连接池中空闲的连接的个数。

上文中的设置的 maxActive="100"说明可以最大连接的个数为100个,再建立连接,则出现异常。

而maxIdle="30"说明当关闭数据库时(不是真正的断开连接,而是归还连接池中)连接池中最大可以有空闲的连接数为30个。

若是再有建立连接,此时若连接池中没有空闲的连接,但是又没有达到maxActive并发的最大连接数,则在连接池中建立连接。

3.然后在WEB-INF中新建web.xml文件,然后将下面内容复制,保存

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version="3.0"

metadata-complete="true">

<display-name>test</display-name>

<welcome-file-list>

<welcome-file>test.jsp</welcome-file>

</welcome-file-list>

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/mysql</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

</web-app>

4.完成后,重启tomcat服务器。

三.编写一个jsp页面测试设置连接池,连接数据库是否成功。

在test目录中新建test.jsp文件,然后将下面内容复制,保存

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
</head>
<body>
<%
Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;

String sql=null;
String username=null;
String alias=null;
String pwd=null;
String strMsg=null;
try{
    Context cxt = new InitialContext();
    DataSource ds = (DataSource)cxt.lookup("java:/comp/env/jdbc/mysql");
    conn = ds.getConnection();
    sql="select * from  test";
    stmt=conn.prepareStatement(sql);
    rs=stmt.executeQuery();
    if(rs.next()){
        strMsg="连接ok";
        out.println(rs.getString("username"));
  out.println(rs.getString("password"));
        out.println("连接ok");
    }else{
        out.println("rs.next() fail");
    }
    rs.close();
   
} catch(Exception e){
    out.println("连接失败:"+e.getMessage());
    //e.printStackTrace();
}

try{
    if(stmt!=null) stmt.close();
}catch(Exception e){}

try{
    if(conn!=null) conn.close();
}catch(Exception e){}

%>
</body>
</html>

使用浏览器输入http://localhost:8080/test/test.jsp

转载于:https://blog.51cto.com/tlinux/1744822

Tomcat7和mysql连接池dbcp方式的配置方法和测试相关推荐

  1. Eclipse+Tomcat7.0+MySQL 连接池设置

    http://blog.sina.com.cn/s/blog_85d71fb70101ab99.html 工程名:JavaWeb 第一步:配置server.xml 在Tomcat的server.xml ...

  2. mysql 连接池 数量_mysql合理配置连接池数量

    我们经常会遇见"MySQL: ERROR 1040: Too many connections"的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分 ...

  3. Django使用mysql连接池_Django db使用MySQL连接池

    Django db使用MySQL连接池 Sep 25 2016 Django db模块本身不支持MySQL连接池,只有一个配置CONN_MAX_AGE连接最大存活时间,如果WSGI服务器使用了线程池技 ...

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

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

  5. 关于Tomcat与MySQL连接池问题的详解

    转载自   关于Tomcat与MySQL连接池问题的详解 研究了一天,终于有所收获,希望对大家有所帮助.首先请大家注意:这里尤其讨论Tomcat5.5版本中遇到的问题,为什么尤其单对这个版本,我一会儿 ...

  6. mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据

    Database Connection Pool Introduction to Database Connection Pool 实际开发中"获得连接"或"释放资源&q ...

  7. mysql清理连接数缓存,MySQL连接池、线程缓存、线程池的区别

    1. MySQL连接池 连接池通常实现在client端,是指应用(客户端)预先创建一定的连接,利用这些连接服务于客户端所有的DB请求.如果某一个时刻,空闲的连接数小于DB的请求数,则需要将请求排队,等 ...

  8. node mysql 连接池创建_Node.js使用MySQL连接池的方法实例

    本文实例讲述了Node.js使用MysqL连接池的方法.分享给大家供大家参考,具体如下: Nodejs如何使用MysqL Nodejs要连接MysqL,可以使用Nodejs的MysqL驱动来实现.比如 ...

  9. swoole task MySQL连接池

    参考 https://blog.csdn.net/ldy3243942/article/details/40596547 上一章中我简单讲解了如何开启和使用Task功能.这一节,我将提供一个Task的 ...

最新文章

  1. 77底盒和86底盒的区别_86型开关底盒的具体参数
  2. (转) Java多线程同步与异步
  3. 兼容多种屏幕分辨率的通栏大图实现方法
  4. python之metaclass
  5. TextView 显示内容时出现 ArrayIndexOutOfBoundsException 的解决方法(Android 4.1)
  6. TypeError: 'dict' object is not callable
  7. java kafka 多线程消费
  8. Python下载中国数据库大会(DTCC2020)PPT全集
  9. 查看Python函数含义的快速,准确方法unique
  10. css 图片等比例缩小_12个令人惊叹的CSS实验项目
  11. 字幕文件srt格式解析
  12. Blender 基础 骨架-02 骨架的各种呈现方式
  13. mhl数据线_mhl接口是什么?mhl接口有哪些作用
  14. 朴素贝叶斯算法(python 实现)
  15. 神经网络的激活函数总结
  16. 长城汽车创新科技来袭,解锁汽车智能安全新高度
  17. html给按钮加颜色代码,css按钮属性 html中按钮的字体颜色怎么设置?
  18. android全屏与非全屏切换时Toolbar的显示,仿微信漂流瓶效果
  19. 使用quercus在tomcat环境中运行php程序
  20. 计算机程序暑假班,贵阳小孩学编程暑假

热门文章

  1. JavaSE(二十一)——栈和队列、栈和堆
  2. 机器人学习--Robotics: Estimation and Learning(宾夕法尼亚大学COURSERA课程)
  3. Python-Opencv学习-实验-1:工具安装
  4. mac安装nvm及换源及node安装切换
  5. 使用numpy遇到ValueError: The truth value of an array with more than one element is ambiguous
  6. C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......
  7. bean validation校验方法参数_SpringBoot参数校验 从入门到精通 解决繁琐的参数验证工作...
  8. Pycharm+PyQt5环境配置
  9. pypthon3精要(11)-try,except,else异常处理
  10. rust(49)-图像(2)