0

このコードは単純なアプリケーションで正常に機能しているため、ドライバーは正常です。それで、接続オブジェクトがドライバーで初期化できないのはなぜですか。

import java.sql.Connection;

インポートjava.sql.DriverManager;

インポートjava.sql.SQLException;

インポートjava.sql.Statement;

インポートcom.opensymphony.xwork2.ActionSupport;

public class Insert extends ActionSupport {

public String execute() throws Exception, SQLException {

    String sql = "";

    String url = "jdbc:mysql://localhost:3306/test";

    //String dbName = "test";

    String driverName = "org.gjt.mm.mysql.Driver";

    String userName = "root";

    String password = "root";

    Connection con=null;

    Statement stmt=null;

    try {

        Class.forName(driverName).newInstance();

        con = DriverManager.getConnection(url, userName, password);

        stmt = con.createStatement();

    } catch (Exception e) {

        System.out.println(e.getMessage());

    }

}

4

1 に答える 1

0

例外は何と言っていますか?createStatementのNullPointerException?

いずれにせよ、クラスはロードされていますか。クラスパス上のクラス(つまり、クラスパス上のMySQL jar?)

Class.forName()から返されたオブジェクトをチェックして、クラスが見つかったかどうかをチェックします。

コメントの後、クラスパスに問題があることは明らかです。mysqljarがクラスパスにありません。eclipseでビルドパスを変更するのは簡単なので、Webアプリの成果物(warファイル)について話していると思います。

たとえば、tomcatにデプロイされたWebアプリケーションでは、<webapp-name> / WEB-INF/libを調べることができます。ファイルWEB-INF/lib/mysql-connector-java-5.0.5.jarまたは同様のものがそこにあるはずです。

WARファイル(まだデプロイされていない)がある場合は、コマンドラインツール「jar」を使用してそれを抽出するか、そこからファイルリストを取得できます。(コマンドラインで)実行する場合jar tf | grepmysqljarfileが表示されているはずです。Windowsを使用する場合; WinRAR(およびおそらくWinZip)もwarfileを開くことができます。WEB-INF / libには、MySQLjarが表示されているはずです。

Mavenを使用してWebアプリを構築する場合。mysqljarに依存関係を追加することを忘れないでください。antを使用してビルドする場合。warファイルを作成する前に、mysqljarファイルをWEB-INF/libにコピーすることを忘れないでください。

現在、要求する推奨ドライバーは「org.gjt.mm.mysql.Driver」ではなく「com.mysql.driver.Driver」であることに注意してください。古いドライバーの代わりに、そのDriverクラスをロードしてみることができます。さらに遠く; このドライバーが実際にmysqljar(jar tf mysq.jar | grepドライバーなど)にあるかどうかを確認します。Driverがmysqljarにあり、mysql jarがwebappのクラスパス(WEB-INF / lib内)にあり、そこにmysql jarが1つしかない場合(バージョンの競合は面白くありません)、それでも機能しませんI何が悪いのか本当にわかりません。MySQLからドライバjarを再度ダウンロードして、再試行すると思います。

于 2009-04-04T12:11:17.407 に答える