一、下载MySQL的JDBC驱动包,放置于Tomcat的lib目录之下。
具体参考:
Java MySQL JDBC连接测试
二、配置Web项目,及连接池
假设自己的Web项目名为test,目录位置于:D:WorkhelloworldWebContent。在 Tomcat 的 confCatalinalocalhost 目录下新建test.xml 文件 ,里面的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context path="/test" docBase="D:WorkhelloworldWebContent" 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,其结果如下图所示:
四、辅助说明
1. serverTimezone不建议设置为UTC,因为UTC是世界协调时(格林威治标准时间是GMT),跟北京时间相比,UTC比北京早8个小时。如果设置为UTC,同一段SQL语句,在MySQLl直接执行,与编译器执行,结果会有所不同,因为时间相差8个小时。
2. 连接池的配置,不需要更改content.xml,也不需要更改web.xml。