Tomcat配置mysql连接池:
第一步::首先在tomcat的lib下加入mysql的jar包。
第二步:在Context.xml里配置以下内容:
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
username="Spider"
password="Spider"
maxActive="850"
maxidle="80"
maxWait="10000"
removeAbandoned="true"
removeAbandonedTimeout="5"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/Spider"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000">
</Resource>
网上有说在server.xml里配置,但我测试了会报:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'这个错误。
第三步:在项目的web.xml里配置
<!-- tomcat连接池--> <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>
测试:tomcat连接池测试不能用main方法或者单元测试类测试,因为main函数是独立入口,不在tomcat的生命周期内。我测试的是直接在项目里建一个测试jsp,然后启动tomcat进行测试,测试代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.sql.*" %> <%@ page import="javax.naming.*" %> <%@ page import="javax.sql.DataSource" %> <html> <body> <h2>Tomcat连接池测试</h2> <% try { //初始化查找命名空间 Context ctx = new InitialContext(); //参数java:/comp/env为固定路径 Context envContext = (Context)ctx.lookup("java:/comp/env"); //参数jdbc/mysqlds为数据源和JNDI绑定的名字 DataSource ds = (DataSource)envContext.lookup("jdbc/mysql"); Connection conn = ds.getConnection(); conn.close(); out.println("<span style='color:green;'>测试成功<span>"); } catch (Exception e) { out.println(e.toString()); } %> </body> </html>
测试结果如下:
说明配置成功。