Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将MySQL JDBC驱动程序导入动态Web项目_Java_Jdbc - Fatal编程技术网

Java 将MySQL JDBC驱动程序导入动态Web项目

Java 将MySQL JDBC驱动程序导入动态Web项目,java,jdbc,Java,Jdbc,我在连接基于web(非本地)的MySQL数据库时遇到问题。我一直收到错误:没有找到适合jdbc的驱动程序:mysql://host:port/database(我使用的当然是实际主机)在控制台中。该网页仅显示“空” 我对Java是全新的,所以我使用 作为开始的参考。我在Eclipse中创建了一个动态web项目,并在WebContent>web-INF>LIB下添加了JDBC连接器JAR文件。我完全不明白为什么这会继续给我一个错误 我在Eclipse IDE中使用Tomcat7 在过去的几个小时里

我在连接基于web(非本地)的MySQL数据库时遇到问题。我一直收到错误:没有找到适合jdbc的驱动程序:mysql://host:port/database(我使用的当然是实际主机)在控制台中。该网页仅显示“空”

我对Java是全新的,所以我使用 作为开始的参考。我在Eclipse中创建了一个动态web项目,并在WebContent>web-INF>LIB下添加了JDBC连接器JAR文件。我完全不明白为什么这会继续给我一个错误

我在Eclipse IDE中使用Tomcat7

在过去的几个小时里,我一直在谷歌上搜索,运气不好。。。请帮忙!以下是我正在使用的代码:

Connect.java

package dbObjects;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class Connect {
    protected Connection getConnection() throws SQLException {
        String url = "jdbc:mysql://host:port/database";
        String username = "username";
        String password = "password";

        Connection conn = (Connection) DriverManager.getConnection(url, username, password);
        return conn;
    }

    protected ResultSet getResultSet(String sql) throws SQLException {
        Connection conn = getConnection();
        Statement st = (Statement) conn.createStatement();
        return st.executeQuery(sql);
    }
}
package dbObjects;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

public class Employees extends Connect {
    private String login;
    private String workgroup;
    private String csm;

    public Employees(String login, String workgroup, String csm) {
        super();
        this.login = login;
        this.workgroup = workgroup;
        this.csm = csm;
    }

    public Employees(String login) throws SQLException {
        super();
        this.login = login;
        setUserById(login);
    }

    private void setUserById(String login) throws SQLException {
        ResultSet resultSet = getResultSet("SELECT * FROM employeeData LIMIT 5");
        while(resultSet.next()) {
            System.out.println(resultSet.getString("login"));
            workgroup = resultSet.getString("workgroup");
            csm = resultSet.getString("csm");
        }
    }

    @Override
    public String toString() {
        return workgroup;
    }

}
Employees.java

package dbObjects;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class Connect {
    protected Connection getConnection() throws SQLException {
        String url = "jdbc:mysql://host:port/database";
        String username = "username";
        String password = "password";

        Connection conn = (Connection) DriverManager.getConnection(url, username, password);
        return conn;
    }

    protected ResultSet getResultSet(String sql) throws SQLException {
        Connection conn = getConnection();
        Statement st = (Statement) conn.createStatement();
        return st.executeQuery(sql);
    }
}
package dbObjects;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

public class Employees extends Connect {
    private String login;
    private String workgroup;
    private String csm;

    public Employees(String login, String workgroup, String csm) {
        super();
        this.login = login;
        this.workgroup = workgroup;
        this.csm = csm;
    }

    public Employees(String login) throws SQLException {
        super();
        this.login = login;
        setUserById(login);
    }

    private void setUserById(String login) throws SQLException {
        ResultSet resultSet = getResultSet("SELECT * FROM employeeData LIMIT 5");
        while(resultSet.next()) {
            System.out.println(resultSet.getString("login"));
            workgroup = resultSet.getString("workgroup");
            csm = resultSet.getString("csm");
        }
    }

    @Override
    public String toString() {
        return workgroup;
    }

}
我正在尝试运行的servlet

package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dbObjects.Employees;

/**
 * Servlet implementation class HomeServlet
 */
@WebServlet(description = "Home page shown to user", urlPatterns = { "/HomeServlet" })
public class HomeServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HomeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        Employees user = null;
        try {
            user = new Employees(null);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        PrintWriter pw = response.getWriter();
        pw.println(user);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}
我还创建了一个简单的连接测试类,它可以正常工作,并且不会返回任何合适的驱动程序错误

import java.sql.DriverManager;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;

public class connTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String url = "jdbc:mysql://host:port/database";
    String username = "username";
    String password = "password";

        System.out.println("Connecting database...");

        try (Connection connection = (Connection) DriverManager.getConnection(url, username, password)) {
            System.out.println("Database connected!");
        } catch (SQLException e) {
            throw new IllegalStateException("Cannot connect the database!", e);
        }
    }

}

问题出在Connect.java类中。我添加了以下代码行
DriverManager.registerDriver(新的com.mysql.jdbc.Driver())就在连接conn=(连接)DriverManager.getConnection(url、用户名、密码)之前


它现在开始工作了

您不应该自己调用
registerDriver
。如果驱动程序没有自动加载,那么您只需使用
Class.forName(“com.mysql.jdbc.driver”)
。调用
registerDriver
只能由JDBC驱动程序自己完成。