1

私のプロジェクトのファイル構造は次のとおりです。

         -src
            |
           -pkg
            |
             -CoreServlet.java(servlet)
             -Main.java
             -Core.java(jdbc code is here)

core.java クラス:

package com.pkg;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class core{
    private Connection connect = null;
    private Statement statement =null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;
    String qwerty;

    public void readDataBase() {
        String userName = "ansh";
        String password = "12345";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connect = DriverManager.getConnection("jdbc:mysql://localhost/glbitm", userName,password);
            statement = connect.createStatement();
            resultSet = statement.executeQuery("select * from teachers");
            resultSet.next();      
            qwerty = resultSet.getString(1);

           } catch (Exception e) {
            System.out.println(e);
        }
    }

}

coreServlet.java クラス:

   package com.pkg;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class coreServlet extends HttpServlet{ 
  /**
     * 
     */
    private static final long serialVersionUID = 1L;


public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException{
        core dao = new core();
        dao.readDataBase();
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  pw.println("<html>");
  pw.println("<head><title>Hello World</title></head>");
  pw.println("<div>"+dao.qwerty+"</div>");
  pw.println("<body>");
  pw.println("<h1>Hello World</h1>");
  pw.println("</body></html>");
  }
}

私のTomcatサーバーにアクセスdao.qwertyしているとき。coreServlet.java取得class not found exception com.mysql.jdbc.driverしていて、の値がdao.qwertynull として出力されます。どこが間違っていますか?

4

3 に答える 3

3

クラスパスに mysql コネクタを追加する必要があります。

http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.4/mysql-connector-java-5.1.4.jar

このコネクタ jar は、データベースとアプリケーション間のデータ フローのメディエーターとして機能します。jar からクラス ファイルを抽出し、詳細を確認できます。

于 2013-04-19T18:28:38.467 に答える
2

コードが Class.forName("com.mysql.jdbc.Driver").newInstance(); の行を実行しようとすると、java.lang.ClassNotFoundException がスローされます。

これは、常に try/catch 内でキャッチする必要があるチェック例外です。または、try/catch が実装されていない場合は、この例外をメソッドで宣言する必要があります。

このスレッドでは複数の解決策が提供されていますが、私の経験から、データ ソース エクスプローラーを使用して Eclipse からデータベースに接続できる場合、最も可能性の高い理由は "mysql-connector-java-5.1.28-bin.jar" です。 tomcat の lib ディレクトリにコピーされません。

Java 用の mysql コネクタは、 http://dev.mysql.com/downloads/connector/j/からダウンロードできます。

于 2014-01-09T19:28:45.320 に答える
1

パスに を設定していませんmysql-connector。最初に を設定すると、他のすべてが実行されます

とはJConnector?

Java は SQL を認識しないため、SQL ドライバーを使用して実行するすべてのステートメントは SQL コンストラクトに変換され、mysql が返す結果も Java の理解可能なコンストラクトに変換されます。

それが役に立てば幸い

于 2013-04-19T18:13:45.273 に答える