Tomcat7和mysql连接池dbcp方式的配置方法和测试
一.设计测试用的数据库
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方式的配置方法和测试相关推荐
- Eclipse+Tomcat7.0+MySQL 连接池设置
http://blog.sina.com.cn/s/blog_85d71fb70101ab99.html 工程名:JavaWeb 第一步:配置server.xml 在Tomcat的server.xml ...
- mysql 连接池 数量_mysql合理配置连接池数量
我们经常会遇见"MySQL: ERROR 1040: Too many connections"的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分 ...
- Django使用mysql连接池_Django db使用MySQL连接池
Django db使用MySQL连接池 Sep 25 2016 Django db模块本身不支持MySQL连接池,只有一个配置CONN_MAX_AGE连接最大存活时间,如果WSGI服务器使用了线程池技 ...
- mysql odbc连接池_Java Mysql连接池配置和案例分析--超时异常和处理
前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...
- 关于Tomcat与MySQL连接池问题的详解
转载自 关于Tomcat与MySQL连接池问题的详解 研究了一天,终于有所收获,希望对大家有所帮助.首先请大家注意:这里尤其讨论Tomcat5.5版本中遇到的问题,为什么尤其单对这个版本,我一会儿 ...
- mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据
Database Connection Pool Introduction to Database Connection Pool 实际开发中"获得连接"或"释放资源&q ...
- mysql清理连接数缓存,MySQL连接池、线程缓存、线程池的区别
1. MySQL连接池 连接池通常实现在client端,是指应用(客户端)预先创建一定的连接,利用这些连接服务于客户端所有的DB请求.如果某一个时刻,空闲的连接数小于DB的请求数,则需要将请求排队,等 ...
- node mysql 连接池创建_Node.js使用MySQL连接池的方法实例
本文实例讲述了Node.js使用MysqL连接池的方法.分享给大家供大家参考,具体如下: Nodejs如何使用MysqL Nodejs要连接MysqL,可以使用Nodejs的MysqL驱动来实现.比如 ...
- swoole task MySQL连接池
参考 https://blog.csdn.net/ldy3243942/article/details/40596547 上一章中我简单讲解了如何开启和使用Task功能.这一节,我将提供一个Task的 ...
最新文章
- 77底盒和86底盒的区别_86型开关底盒的具体参数
- (转) Java多线程同步与异步
- 兼容多种屏幕分辨率的通栏大图实现方法
- python之metaclass
- TextView 显示内容时出现 ArrayIndexOutOfBoundsException 的解决方法(Android 4.1)
- TypeError: 'dict' object is not callable
- java kafka 多线程消费
- Python下载中国数据库大会(DTCC2020)PPT全集
- 查看Python函数含义的快速,准确方法unique
- css 图片等比例缩小_12个令人惊叹的CSS实验项目
- 字幕文件srt格式解析
- Blender 基础 骨架-02 骨架的各种呈现方式
- mhl数据线_mhl接口是什么?mhl接口有哪些作用
- 朴素贝叶斯算法(python 实现)
- 神经网络的激活函数总结
- 长城汽车创新科技来袭,解锁汽车智能安全新高度
- html给按钮加颜色代码,css按钮属性 html中按钮的字体颜色怎么设置?
- android全屏与非全屏切换时Toolbar的显示,仿微信漂流瓶效果
- 使用quercus在tomcat环境中运行php程序
- 计算机程序暑假班,贵阳小孩学编程暑假
热门文章
- JavaSE(二十一)——栈和队列、栈和堆
- 机器人学习--Robotics: Estimation and Learning(宾夕法尼亚大学COURSERA课程)
- Python-Opencv学习-实验-1:工具安装
- mac安装nvm及换源及node安装切换
- 使用numpy遇到ValueError: The truth value of an array with more than one element is ambiguous
- C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......
- bean validation校验方法参数_SpringBoot参数校验 从入门到精通 解决繁琐的参数验证工作...
- Pycharm+PyQt5环境配置
- pypthon3精要(11)-try,except,else异常处理
- rust(49)-图像(2)