[英]Import MySQL JDBC Driver into Dynamic Web Project
我在連接到基於Web(而非本地)的MySQL數據庫時遇到問題。 我不斷收到錯誤消息:在控制台中找不到適用於jdbc:mysql:// host:port / database的合適驅動程序 (我當然使用的是實際的主機)。 該網頁僅顯示“空”。
我是Java的新手,因此一直以這篇文章作為參考來開始使用。 我在Eclipse中創建了一個動態Web項目,並在WebContent> WEB-INF> LIB下添加了JDBC連接器JAR文件。 我完全迷失了為什么這繼續給我一個錯誤。
我正在Tomcat 7中使用Eclipse IDE。
在過去的幾個小時里,我一直在谷歌搜索,沒有運氣...請幫助! 這是我正在使用的代碼:
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);
}
}
Employees.java
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(new com.mysql.jdbc.Driver ());
就在Connection conn = (Connection) DriverManager.getConnection(url, username, password);
現在正在工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.