※ ChatGPTを利用し、要約された質問です(原文:Javaで、TomCatプロジェクトを使用したJDBCを使用したデータベースのアクセスについて教えてください。)
JavaでTomCatプロジェクトを使用したJDBCデータベースアクセス方法
このQ&Aのポイント
JavaでTomCatプロジェクトを使用してJDBCを利用したデータベースのアクセス方法について教えてください。
TomCatプロジェクトでDBアクセスできない問題に困っています。
JDBCを使用してデータベースにアクセスするためのJavaプロジェクトやTomCatプロジェクトを作成する方法を教えてください。
Javaで、TomCatプロジェクトを使用したJDBCを使用したデータベースのアクセスについて教えてください。
すぐに回答を! 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());
}
}
}
お礼
ご回答ありがとうございます。 助かりました。 "[Tomcatディレクトリ]/lib" ディレクトリ配下にMySQLのJDBCドライバのjarファイルを置いてもう1度確認、してみたところ動作しました。