步骤
1.webINF目录下创建config.xml,tomcat会优先调用conf目录下的context.xml
<?xml version="1.0" encode="UTF-8" ?>
<Context>
<!-- T9.0 将resource复制到tomcat/config/context的Context中-->
<Resource
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
username="root"
password="alpha"
maxActive="50"
maxIdle="20"
name="test"
auth="Container"
maxWait="10000"
type="javax.sql.DataSource"/>
</Context>
2.webxml添加引用
<resource-ref>
<description>DB Connection</description>
<res-ref-name>test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.创建sevlet连接
package com.alpha.Sevlet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @Auther Alpha
* @Data 2020-03-28 12:55
* @Dscription:
*/
public class pool extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp){
try {
Context cxt = new InitialContext();
DataSource ds = (DataSource) cxt.lookup("java:comp/env/test");
System.out.println("连接成功");
//正常连接
Connection conn = ds.getConnection();
String sql = "select * from t_user";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()){
System.out.println("name="+rs.getString("uname"));
}
rs.close();
conn.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
问题ds连接报错 :java.sql.SQLException: Cannot create JDBC driver of class ‘’ for connect URL ‘null’
解决:
1.url等配置文件填写错误
2.tomcat版本原因
----5.5以下,检查书写错误
----5.5以上, url=“jdbc:mysql://localhost:3306/test?sizetime=“utc””(加时钟,我这时钟可能写法有误,自行百度)
----9.0 百度 google均无解决方法,同样问题的帖子全沉了,唯一方法:
T9.0 将resource配置复制到tomcat/config/context的Context.xml中,即把项目中的context.xml合并到tomcat的context.xml中