すぐに回答を! 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());
}
}
}
No.1ベストアンサー
- 回答日時:
Tomcatは起動時に "[Tomcatディレクトリ]/lib" ディレクトリ配下のライブラリがクラスパスに追加されます。
Javaプロジェクトの場合は「Javaのビルド・パス=実行時のクラスパス」として設定されますが、TomCatプロジェクト作成の場合は「Javaのビルド・パス=実行時のクラスパス」とはなりません。
"[Tomcatディレクトリ]/lib" ディレクトリ配下にMySQLのJDBCドライバのjarファイルを置いてもう1度確認してみて下さい。
ご回答ありがとうございます。
助かりました。
"[Tomcatディレクトリ]/lib" ディレクトリ配下にMySQLのJDBCドライバのjarファイルを置いてもう1度確認、してみたところ動作しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaでデータに登録する度にID...
-
yyyymmddからyyyy/mm/d...
-
java連結
-
csv出力について
-
Java int sum = 0は必要ですか?
-
ソケットを使ったサーバとクラ...
-
「プログラミング」JAVAの...
-
「テキストファイルをリソース...
-
javaでクッキーを取得したい
-
JAVAで、SSL通信
-
テキストファイルから空白行をよむ
-
JAVAでエラーがでる。
-
equalsの逆
-
javaプログラミングの質問です。
-
今勉強中のjavaで。わからない...
-
BufferedReader.readline()で読...
-
java.lang.NoClassDefFoundErro...
-
C言語のポインターに関する警告
-
VBAで配列の計算
-
[JAVA]try 内の変数を外で!?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
[JAVA]エラーが解決できません。
-
javaのfor文が機能してないみた...
-
InputStream.read()でタイムア...
-
Servletでテキストボックスに入...
-
Javaでデータに登録する度にID...
-
Inputstreamについて
-
BufferedReaderでのエラー
-
FileクラスのcanRead/canWrite...
-
java連結
-
Java 読み込んだテキストファイ...
-
Javaの質問です。テキストファ...
-
テキストファイルの任意の文字...
-
Class.forNameでエラーになる
-
テキストファイルにおいて任意...
おすすめ情報