0

Eclipse で JSP を使用して MySQL テーブルから行を取得しようとしています。Tomcat サーバーが起動し、jConnector が JRE ライブラリにあり、コードは次のとおりです。

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {
    public Connection getDBConnection() throws Exception{
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection  conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","myuname","mypass");
        return conn;
    }
}

JSPは:

<jsp:useBean id="dbConn" scope="request" class="dbConn.DBConnection"/>
<%
  Connection conn=dbConn.getDBConnection();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from user");
%>
<html>
...
<body>
<%while (rs.next()){ %>
<h1><%=rs.getString(2) %></h1>
<%} %>
</body>
</html>
<%
  if(conn!=null)
    conn.close();
%>

そして最終結果は

エラー: 根本原因

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

4

1 に答える 1

2

jConnector は JRE ライブラリにあります

これは正しくありません。JAR ファイルを Web プロジェクトの/WEB-INF/libフォルダーにドロップする必要があります。基本的にこれだけで十分です。このフォルダー内のすべてが、最終的に webapp のランタイム クラスパスになります。プロジェクトのビルド パスプロパティをいじったことがある場合は、すべて元に戻すことをお勧めします。そうしないと、現在または将来、他の何かを壊したり混乱させたりする可能性があります。

以下も参照してください。


具体的な問題とは関係ありませんが、JSP ファイルに Java コードを記述することは、10 年前から強く推奨されていません。通常の Java クラスで Java コードを記述し、HTTP 要求を制御するサーブレットについて学習することをお勧めします。

以下も参照してください。

于 2013-01-07T20:59:15.223 に答える