こんばんわ。
教えて頂きたいのですが、以下のjspを記述しましたが番号・名前・電話番号の項目表示のみで肝心のテーブル内容が表示されません。
何が原因かわからず困っています。
教えて下さい!お願い致します。
<%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%>
<%@page import="java.sql.*"%>
<%!
// サーブレットのinitメソッドに相当
public void jspInit() {
try {
// JDBCドライバをロード
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception e) {
e.printStackTrace();
}
}
%>
<html>
<head><title>テーブル_JSP版</title></head>
<body>
<P>データベース一覧</P>
<table border='1'><tr><th>番号</th><th>名前</th><th>電話番号</th></tr>
<%
// データベースへのアクセス開始
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
// データベースに接続するConnectionオブジェクトの取得
con = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Name","ID","PW");
// データベース操作を行うためのStatementオブジェクトの取得
stmt = con.createStatement();
// SQL()を実行して、結果を得る
rs = stmt.executeQuery(
"SELECT 番号, 名前, 電話番号 FROM Table");
// 得られた結果をレコードごとに表示
while (rs.next()) {
%>
<tr>
<%-- レコードのCUSTOMER_NUMフィールドを表示 --%>
<td><%= rs.getString("番号")%></td>
<%-- レコードのNAMEフィールドを表示 --%>
<td><%= rs.getString("名前")%></td>
<%-- レコードのPHONEフィールドを表示 --%>
<td><%= rs.getString("電話番号")%></td>
</tr>
<%
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// データベースとの接続をクローズ
try { rs.close(); } catch (Exception e) {}
try { stmt.close(); } catch (Exception e) {}
try { con.close(); } catch (Exception e) {}
}
%>
</table>
</body>
</html>
No.2
- 回答日時:
No.1です
SELECT * FROM テーブル名
だとしてもWHERE句が無い以上、当該テーブルの全レコードを取得するはずです。
なので、そもそもテーブル上にレコードがあるのか疑問です。
もし、レコードが1件以上取得できていることの確認をプログラム上で取りたいのであれば、
while (rs.next()) のループ内にたどり着いていることを確認することです。
例えばwhileの下の行に「System.out.println("ループの中に入ったよ!");」とかで。
まぁ、今のままでもループ内の<tr>タグなどが出力されているかで確認は取れますが。
ループ内に一度もたどり着いていないのであればレコード取得件数は0件です。
ループ内にたどり着いている場合、rs.getString(列名)で取得している
列の値がNULL(ブランク文字)だと思われます。
どちらにせよ、一度SQLServerの当該テーブルを
クエリアナライザなどで確認した方が良いでしょう。
この回答への補足
ARIA9さま
ありがとうございます☆
クエリアナライザですか・・・
初めて聞いた名前なので一度調べてやってみます。
もう1点ご教授頂きたいのですが、これはODBCを通じて直接SQLServerへ見に行っているのでしょうか?
mdbのアプリケーションパスを指定する必要はないのでしょうか?
xml等
度々申し訳ありませんがお願い致します。
No.1
- 回答日時:
ぱっと見、問題なさそうですが。
1.例外が発生していないこと
→もし発生しているならスタックトレースから原因がわかります。
2.直接SQLServerへ接続してプログラムで発行しているSQLを投げたときにレコードが取得できていること
→そもそもレコードが取得できていないといったことはありませんか。
この回答への補足
ARAIA9さま
ありがとうございます。
例外は発生していない様です。
勉強不足で恐縮なのですが、レコードが取得の有無は確認できるのでしょうか?
SQL構文をSELECT * FROM テーブル名に変えても結果は同じでした。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VB.Net Object型 空かどうか
-
String型の日付(2005/11/25)の...
-
nullで、return出来るのはどん...
-
時間の取得
-
ファイルダイアログを開いた時...
-
VC++におけるCStringの変換
-
Javaで文字列をゼロ埋め(ゼロパ...
-
C#の捕捉されない例外処理の対...
-
アサーションと例外処理の違い...
-
VBA 400エラー 1004エラー
-
0除算の例外処理ができない!!...
-
デバッグについて
-
文字列からダブルクオートの削除
-
C# UriFormatExceptionの回避
-
連続する「\\」をひとつの「\\...
-
VBA Evaluate関数 型が一致しま...
-
変数名の付け方
-
エクセルVBAで、条件に一致する...
-
private static という変数の修飾
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
連続する「\\」をひとつの「\\...
-
VB.NETで16進数が正しいかどう...
-
ファイルダイアログを開いた時...
-
VB.Net Object型 空かどうか
-
Timestamp型への変換について(J...
-
C#の捕捉されない例外処理の対...
-
【JAVA】与えられた金額を貨幣...
-
文字列からダブルクオートの削除
-
VBA Evaluate関数 型が一致しま...
-
nullで、return出来るのはどん...
-
String型の日付(2005/11/25)の...
-
Excelでのエラー
-
0除算の例外処理ができない!!...
-
C# マルチスレッドにおける例外...
-
javaプログラムで背景色を変更...
-
時間の取得
-
WebClient()以外でネットにアク...
-
VBA 400エラー 1004エラー
-
全角スペースのチェックについて
おすすめ情報