【问题标题】:Cannot get JDBC driver to work in tomcat jsp无法让 JDBC 驱动程序在 tomcat jsp 中工作
【发布时间】:2016-12-24 16:06:19
【问题描述】:

我尝试在tomcat上运行的jsp中建立一个与mysql数据库的简单示例连接。

运行下面的代码我得到响应:没有找到适合 jdbc:mysql://localhost/TestingDB 的驱动程序

<HTML>
    <HEAD><TITLE>Testing mysql</TITLE></HEAD>
<BODY>

<%@ page import = "java.sql.*"%>

<%  
        String url = "jdbc:mysql://localhost/TestingDB";

        String user = "mysql";
        String password = "pwd";

    try {
        Connection con = DriverManager.getConnection(url, user, password);
        out.println("Success");
        Statement st = null;
        ResultSet rs = null;
        st = con.createStatement();
        rs = st.executeQuery("SELECT * FROM TestTable");
        while(rs.next()){ 
            out.println(rs.getString("String1"));
        }

    } catch (Exception e) {
        out.println(e.getMessage());
            e.printStackTrace();
        }
%>

</BODY>
</HTML>

我已将 mysql-connector-java-5.1.xx-bin.jar 放在 CATALINA_HOME/lib 目录中,当它不起作用时,我尝试将其放在 {appname}/WEB-INF/lib 目录中。

我已经在每次尝试之间使用 services tomcat restart 重新启动了 tomcat。

访问数据库应该没有任何问题,因为在独立的 java 类中使用(几乎)相同的代码可以正常工作。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

class JDBCTest {

    private static final String url = "jdbc:mysql://localhost/TestingDB?useSSL=false";

    private static final String user = "mysql";     
    private static final String password = "pwd";

    public static void main(String args[]) {
            try {
            Connection con = DriverManager.getConnection(url, user, password);
            System.out.println("Success");
            Statement st = null;
            ResultSet rs = null;
            st = con.createStatement();
            rs = st.executeQuery("SELECT * FROM TestTable");
            while(rs.next()){ 
                  System.out.println(rs.getString("String1"));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我真的没有想法了。欢迎所有帮助!

【问题讨论】:

    标签: mysql jsp tomcat jdbc


    【解决方案1】:

    我已经把mysql-connector-java-5.1.xx-bin.jar放到CATALINA_HOME/lib目录下

    应该可以,但是您必须在测试之前重新启动 Tomcat。

    当它不起作用时,我尝试将它放在 {appname}/WEB-INF/ 目录中。

    错了。应该是{appname}/WEB-INF/lib 目录。

    但是,您应该将此数据库定义为 META-INF/context.xml 中的资源,并通过 java:comp/env/jdbc 命名空间上的 JNDI 查找从 Tomcat 获取它。你的做法很糟糕。

    【讨论】:

    • 谢谢。我确实在中间重新启动了tomcat,但我错过了该目录上的 /lib 。我完全是这方面的初学者,并且遵循了教程。我你说这是不好的做法,我也会调查一下(尤其是现在它不起作用)。
    • 在以正确的方式创建另一个 web 应用程序后,它确实工作但我真的不知道为什么(我可以假设它是相关的)。因此,我宣布这是正确的答案,因为正确的方法可以消除这个陷阱。
    【解决方案2】:

    你忘了把端口放在 URL 访问中。

    这是一个连接 URL 的简单示例:

    jdbc:mysql://localhost:3306/TestingDB;

    【讨论】:

    • 这应该不是问题,因为它适用于 java 类。我已经尝试添加它,但它没有任何区别,所以我实际上再次删除了它。
    • 如果是默认端口就不用放了,本例就是这样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2012-03-09
    • 2013-07-13
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多