文档章节

Tomcat7和mysql连接池的配置方法和测试(dbcp方式)

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:42
字数 758
阅读 11
收藏 0

一.设计测试用的数据库

    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

 

我的案例:http://l7.yunpan.cn/lk/Q2yY5ZTiuEhwc

 

本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/8572616

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
Spring Boot学习笔记-SQL数据库使用

初次看到Spring Boot关于SQL数据库的数据源配置时,笔者是傻脸的节奏。笔者之前的工作开发中,用过应用级别的c3p0连接池技术(踩过一个连接总是耗尽的坑),后来改用了Tomcat服务器JNDI获取数...

chace0120
2015/12/29
3.3K
0
tomcat数据库连接池密码加密

应用部署到tomcat上后,数据库连接信息通常配置在context.xml,默认配置都是明文形式,如数据库用户名、密码等,这样可能会导致配置信息被其他人窃取,造成安全隐患,下面介绍下通过对配置信...

飘然轻落
2017/07/09
0
0
解决一系列tomcat热部署问题 create a memory leak.

开发环境中,一直使用热部署; 当重新编译的时候,有些资源不能够释放,从而占用了内存;多热部署几次就内存溢出了。 今天解决了这几个问题; 在实际项目中,主要是这几类资源无法释放: 1,...

lifer
2015/10/08
3K
0
Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置

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

zkool
2013/04/13
3K
0
c3p0、dbcp、tomcat jdbc pool 连接池区别

查看资料,得知dbcp和c3p0都是单线程的,在高并发的环境下性能会非常低下, 决定换用tomcat自带的jdbc-pool,关于jdbc-pool的项目介绍。 区别参考链接:http://www.open-open.com/lib/view/o...

张嘴吃药
2017/10/30
188
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
126
7
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
18
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部