日期:2014-05-16  浏览次数:20871 次

Tomcat+mysql连接池的配置与测试

[转贴请注明出处]

龙族联盟:网络巡警

?

Tomcat+mysql连接池的配置与测试

?

环境:

Tomcat6.0.18

Mysql: 5.1.36

Windwos XP sp2

?

最近需要用到Tomcat+mysql连接池的配置,今天在网上查了好多资料,老资料太多,对于以上的老版本tomcat可能有用,本人没有测试过,正确写出tomcat6.0配置的文间很少!好多资料上面的配置对于现在新版的几乎都是有问题的,十错七八!今天把我配置的正确方法写下来,供大家参考!

?

1.安装tomcat,略;

2.安装mysql略,

进入mysql,新建数据库test1;

test1 数据库 中建表pet,表结构如下;

mysql> desc pet;

+---------+----------+------+-----+---------+-------+

| Field?? | Type???? | Null | Key | Default | Extra |

+---------+----------+------+-----+---------+-------+

| name??? | char(20) | YES? |???? | NULL??? |?????? |

| owner?? | char(20) | YES? |???? | NULL??? |?????? |

| species | char(20) | YES? |???? | NULL??? |?????? |

| sex???? | char(1)? | YES? |???? | NULL??? |?????? |

| birth?? | date???? | YES? |???? | NULL??? |?????? |

| death?? | date???? | YES? |???? | NULL??? |?????? |

+---------+----------+------+-----+---------+-------+

?

加入一些数据;

INSERT INTO pet VALUES ('猪八戒','唐僧','神仙','f','2001-12-01',NULL);

?

这里注意mysql表字符集设置,很有可能在客户端和JSP中乱码,可参考我写的文章: eclipse连接mysql乱码及mysql[ERROR 1366 (HY000):错误]

http://c02949.blog.163.com/blog/static/485037200962345218147/

?

网上搜到的好多资料说:tomcat配置mysql连接池需要改:

配置tomcat下的conf下的context.xml

配置tomcat下的conf下的webt.xml

配置tomcat下的conf下的server.xml 乱七八糟,害我把Tomcat6.0重装一次!浪费了好多时间.

?

正确的配置方法只需要修改context.xml和web.xml两个文件:

context.xml在<context></context>之间添加连接池如下:

<Resource name="jdbc/mysql" auth="Container"

??????????????? type="javax.sql.DataSource"

??????????????? maxActive="50" maxIdle="10" maxWait="5000"

??????????????? username="你的mysql用户" password="你的mysql密码"

??????????????? driverClassName="org.gjt.mm.mysql.Driver"

??????????????? url="jdbc:mysql://localhost/test1" />

?

web.xml中的<web-app></web-app>之间加入:

<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>

?

注意的地方: context.xml文件中的name="jdbc/mysql"要和web.xml中的<res-ref-name>jdbc/mysql</res-ref-name>要一致;

?

mysql 的jdbc驱动复制到配置tomcat下的lib目录;

?

OK,到些就配置完了,下来就是写测试代码:

?

打开Eclipse其手工建个WEB project(我的工程名mysql),加入mysql JDBC驱动,记得这个一定要加入;

?

新建jsp文件:

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ page import="java.sql.*"%>??

<%@ page import="javax.sql.*"%>??

<%@ page import="javax.naming.*"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

? <head>

??? <title>mysql连接池测试</title>

??????? <meta http-equiv="pragma" content="no-cache">

??????? <meta http-equiv="cache-control" content="no-cache">

??????? <meta http-equiv="expires" content="0">???

??????? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

??????? <meta http-equiv="description" content="This is my page">

??????? <!--

??????? <link rel="stylesheet" type="text/css" href="styles.css">

??????? -->??

? </head>

?

? <body>

??????? <%?

??? out.print("我的测试开始<br>");??

??? DataSource ds = null;??

????? try{

??????????? InitialContext ctx=new InitialContext();

??????????? ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");

??????????? Connection conn = ds.getConnection();?