0

データを読み書きするためにMySQLデータベースへの接続を確立しようとしています。ただし、このコードを実行しようとするとエラーが発生します。

public void openConnection() throws SQLException {
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/jared_bookoo",                                          "root", "pass");
  Statement stmt = conn.createStatement();
}

奇妙なことに、JUnitテストを実行すると、すべてのテストに合格します。データベースから正しく読み取り、正しいデータを返すことができます。ただし、JSPに接続して、ローカルでホストされているWebページから読み取ろうとすると、次のエラーが発生します。

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/jared_bookoo
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at jared.simpledatabase.DBInterface.openConnection(DBInterface.java:42)
    ...

何が起こっているのですか、どうすれば修正できますか?ドライバーがインストールされている(そして動作している。テストでデータベースから読み取ることができる)ので、何がうまくいかないのかわかりません。

4

1 に答える 1

2

MySQLドライバーjarをWEB-INF/libライブラリに配置します。ここで見つけることができます。また、warファイルを生成するときに、MySQLドライバーjarがにあることを確認してくださいweb_app_name/WEB-INF/lib

別のアドバイス(そのメソッドを呼び出す場所を指定しない場合に備えて):JSPでJavaコードを直接使用しようとしないでください。詳細については、「JSPファイルでJavaコードを回避する方法」を参照してください。

もう1つのアドバイスは、実際のWebアプリケーションでは、データソースを使用してを取得することConnectionです。使用するアプリケーションサーバーを指定しないため、Tomcat7でのデータソースの構成について例を示します。

于 2013-03-26T17:31:50.747 に答える