dポイントプレゼントキャンペーン実施中!

すぐに回答を! TomCatプロジェクトでDBアクセスできず困っています。

●Javaプロジェクトの場合(成功)
 ・Javaプロジェクト作成 → 新規 → クラスを作成。
 ・プロジェクト選択 → メニューバー「プロジェクト」 → プロパティー
  → Javaのビルド・パス → ライブラリーの追加 → ユーザーライブラリー
  → 新規 → MySQLドライバを追加
 ・次のソースの実行にて、JDBC Dirverの接続を確認。

[JdbcSample.java]
import java.sql.*;
class JdbcSample {
public static void main(String[] args) {
try {

// 1.JDBC Driver の登録
Class.forName("com.mysql.jdbc.Driver").newInstance();

// 2.データベースへの接続
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/db1", "(ユーザー名)", "(パスワード)");

// 3.SQL ステートメント・オブジェクトの作成
Statement stmt = con.createStatement();
// 4.SQL ステートメントの発行
ResultSet rs = stmt.executeQuery("SELECT * from null_test_tbl");
// 5.結果の出力
while (rs.next()) {
System.out.println(rs.getString("allow_null"));
}

// 6.データベースのクローズ
rs.close();
stmt.close();
con.close();

} catch (SQLException e1) {
System.out.println(
"SQLException: " + e1.getMessage());
System.out.println(
" SQLState: " + e1.getSQLState());
System.out.println(
" VendorError: " + e1.getErrorCode());
} catch (Exception e2) {
System.out.println(
"Exception: " + e2.getMessage());
}
}
}

●TomCatプロジェクト作成の場合(失敗)
 (1)TomCatプロジェクト作成 → 新規 → クラスを作成。
 (2)プロジェクト選択 → メニューバー「プロジェクト」 → プロパティー
  → Javaのビルド・パス → ライブラリーの追加 → ユーザーライブラリー
  → 新規 → MySQLドライバを追加
 (3)サーブレットからBeanの呼び出し。
 「​http://localhost:8080/test_mvc/jdbcSample​」
 (4)エラー「Exception: com.mysql.jdbc.Driver」 が発生。(ドライバーが見つかりません?)

[servlet]
package ne.jp;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestMvc extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


JdbcSample da = new JdbcSample();


try {
da.dbAccessTest(); (※)←ここでBeanのデータベースアクセスメソッドを呼び出し
} catch (Exception e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}


// HTML出力の準備
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out = response.getWriter();

out.println("<html><body><p>こんにちわ!</p></body>");
}

}

[Bean]
package ne.jp;
import java.sql.*;

class JdbcSample {

//Beanコンストラクタ
public JdbcSample(){
}

//データベースアクセス確認
public void dbAccessTest(){

try {

// 1.JDBC Driver の登録
Class.forName("com.mysql.jdbc.Driver").newInstance();

// 2.データベースへの接続
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/db1", "***", "*****");

// 3.SQL ステートメント・オブジェクトの作成
Statement stmt = con.createStatement();
// 4.SQL ステートメントの発行
ResultSet rs = stmt.executeQuery("SELECT * from null_test_tbl");
// 5.結果の出力
while (rs.next()) {
System.out.println(rs.getString("allow_null"));
}

// 6.データベースのクローズ
rs.close();
stmt.close();
con.close();

} catch (SQLException e1) {
System.out.println(
"SQLException: " + e1.getMessage());
System.out.println(
" SQLState: " + e1.getSQLState());
System.out.println(
" VendorError: " + e1.getErrorCode());
} catch (Exception e2) {
System.out.println(
"Exception: " + e2.getMessage());
}
}
}

「Javaで、TomCatプロジェクトを使」の質問画像

A 回答 (2件)

Tomcatは起動時に "[Tomcatディレクトリ]/lib" ディレクトリ配下のライブラリがクラスパスに追加されます。



Javaプロジェクトの場合は「Javaのビルド・パス=実行時のクラスパス」として設定されますが、TomCatプロジェクト作成の場合は「Javaのビルド・パス=実行時のクラスパス」とはなりません。

"[Tomcatディレクトリ]/lib" ディレクトリ配下にMySQLのJDBCドライバのjarファイルを置いてもう1度確認してみて下さい。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
助かりました。

"[Tomcatディレクトリ]/lib" ディレクトリ配下にMySQLのJDBCドライバのjarファイルを置いてもう1度確認、してみたところ動作しました。

お礼日時:2009/06/09 21:37

回答#1の補足です。



"[TOMCAT_HOME]/lib"配下にあるライブラリはどのコンテキストからも利用可能なものになります。
もし、1つのコンテキストから利用できればいいようなライブラリであれば、"[コンテキストディレクトリ]/WEB-INF/lib"配下に置いて下さい。
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2009/06/09 21:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!