Tomcat 9.0连接数据库连接池 java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'nul

步骤

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中

发布了23 篇原创文章 · 获赞 2 · 访问量 1188

猜你喜欢

转载自blog.csdn.net/qq_42733641/article/details/105163987