Tomcat下,MySQL连接池的配置和使用(Tomcat9,MySQL5.5)

一、下载MySQL的JDBC驱动包,放置于Tomcat的lib目录之下。

具体参考:

Java MySQL JDBC连接测试

二、配置Web项目,及连接池

假设自己的Web项目名为test,目录位置于:D:\Work\helloworld\WebContent。在 Tomcat 的 conf\Catalina\localhost 目录下新建test.xml 文件 ,里面的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/test" docBase="D:\Work\helloworld\WebContent" crossContext="true">
<Resource name="jdbc/DemoDb" auth="Container" type="javax.sql.DataSource"
    username="root"
    password="admin"
    maxActive="850"
    maxidle="80"
    maxWait="10000"
    removeAbandoned="true"
    removeAbandonedTimeout="5"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/xuejia?serverTimezone=Asia/Shanghai"
    minEvictableIdleTimeMillis="4000"
    timeBetweenEvictionRunsMillis="5000"/>
</Context>
  • name:连接池名称
  • auth:连接池管理权属性,Container表示容器管理
  • type:对象类型
  • driverClassName:数据库驱动名称
  • url:数据库地址
  • username:数据库用户名
  • password:数据库密码
  • maxActive:最大连接数, 0表示没有限制
  • maxIdle:最大空闲数,超过空闲时间,数据库连接将被释放。设为0表示无限制。
  • maxWait:最大连接等待时间, 单位为 ms, 如果超过此时间将接到异常。设为-1表示无限制。

 

三、连接池的使用。创建dbtest.jsp,内容如下:

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.sql.*,
    javax.naming.*,
    javax.sql.*"%>
<%
    // 从连接池中获取连接句柄
    Context initCtx = new InitialContext();
    Context envCtx = (Context)initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource)envCtx.lookup("jdbc/DemoDb");
    Connection conn = ds.getConnection();
    try {
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("select CONTENTID,TITLE from CONTENTINFO");
        while(rs.next()) {
            out.println(rs.getString(1) + rs.getString(2));
            out.println("<BR/>");
        }
        rs.close();
        stmt.close();
        conn.close();
    }finally{
        if(conn != null) conn.close();
    }
%>

打开IE,输入地址:http://localhost:8080/test/dbtest.jsp,其结果如下图所示:

Tomcat下,MySQL连接池的配置和使用(Tomcat9,MySQL5.5)

四、辅助说明

1. serverTimezone不建议设置为UTC,因为UTC是世界协调时(格林威治标准时间是GMT),跟北京时间相比,UTC比北京早8个小时。如果设置为UTC,同一段SQL语句,在MySQLl直接执行,与编译器执行,结果会有所不同,因为时间相差8个小时。

2. 连接池的配置,不需要更改content.xml,也不需要更改web.xml。

 

Tomcat下,MySQL连接池的配置和使用(Tomcat9,MySQL5.5)

上一篇:SQL四种语言:DDL,DML,DCL,TCL


下一篇:SQL Server无法连接