无法让JDBC驱动程序在tomcat jsp中工作

时间:2016-08-17 20:54:58

标签: mysql jsp tomcat jdbc

我尝试在运行在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 重启在每次尝试之间重新启动了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();
        }
    }
}

我真的没想到了。欢迎大家帮忙!

2 个答案:

答案 0 :(得分:3)

  

我已将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获取它。你正在做的是糟糕的做法。

答案 1 :(得分:-1)

您忘记将该端口放入URL访问权限。

以下是连接网址的简单示例:

JDBC:MySQL的://本地主机:的 3306 / TestingDB;