![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?5a7ff87)
JSPで複数のSQLを実行したいと思い、作ってみましたがページが全く表示されません。
SQL分が違う気がするのですがどこが悪いのか分りません。
ご教示下さいませ。ソースのせます。
<%@page contentType="text/html; charset=Windows-31J"%>
<%@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>結果</TITLE></HEAD>
<BODY>
<CENTER>
<B>結果</B>
<TABLE border="3">
<TR>
<TD>年齢</TD>
<TD>氏名</TD>
</TR>
<%
// データベースへのアクセス開始
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
// データベースに接続するConnectionオブジェクトの取得
con = DriverManager.getConnection("jdbc:sqlserver:ServerName;DatabaseName=Name","ID","PW");
// データベース操作を行うためのStatementオブジェクトの取得
stmt = con.createStatement();
if (request.getParameter("buttonA") != null) {
// テキストボックスの値を取得
String paramA = request.getParameter("NamA");
// SQL()を実行して、結果を得る
rs = stmt.executeQuery("SELECT * FROM TABLE_A where 年齢='"+ paramA +"'");
rs = stmt.executeQuery("SELECT * FROM TABLE_B where 年齢='"+ paramA +"'");
} if (request.getParameter("buttonB") != null) {
// テキストボックスの値を取得
String param = request.getParameter("NamB");
// getParameterの値を文字列へ変換
String paramB = new String(param.getBytes("ISO-8859-1"),"Shift_JIS");
rs = stmt.executeQuery("SELECT * FROM TABLE_A where 氏名 like '%"+ paramB +"%'");
rs = stmt.executeQuery("SELECT * FROM TABLE_B where 氏名 like '%"+ paramB +"%'");
}
// 得られた結果をレコードごとに表示
while (rs.next()){
String year = rs.getString("年齢");
String name = rs.getString("氏名");
%>
<TR>
<FORM method="post" action="Next.jsp">
<TD><%= year %></TD>
<TD><%= name %></TD>
</form>
</TD>
</TR>
<%
}
} catch (Exception e) {
e.printStackTrace();
// エラー表示プログラム
out.write(e.getMessage());
} finally {
// データベースとの接続をクローズ
try { rs.close(); } catch (Exception e) {}
try { stmt.close(); } catch (Exception e) {}
try { con.close(); } catch (Exception e) {}
}
%>
</TABLE>
</BODY>
</HTML>
No.2ベストアンサー
- 回答日時:
画面に表示されないとの事ですが、エラーなどは
表示されていないのでしょうか…?
SQLでの構文エラーであればSyntaxエラーなど出るはずですが…。
あとlikeを使っている所と、使っていない所は
何か違うのでしょうか?
共にテキストボックスからの値とコメントには書かれていますが…。
この回答への補足
画面には真っ白の表示が出るだけの状態です。
エラーは出ていない様です。。。
likeは前のJSPから持ってきた値(氏名)のあいまい検索です。
もう1つはあいまい検索する必要がないので使用していないという現状です。
宜しくお願い致します。
No.4
- 回答日時:
追加ですが、まったく表示されないって事はありませんでした。
結果って表示はされましたし…。本当に
まったく表示されないのであればHTMLだけでも表示されるか
確かめた方がいいかと…。
テーブルはそれぞれ見てループでレコードを出したいので
分ける必要がありました。。。
もう1度Resultの部分を確認したいと思います。
あとHTMLの部分もです。
実際に試して頂いたりしてありがとうございました☆
No.3
- 回答日時:
rs = stmt.executeQuery("select * from table_A 年齢");
rs = stmt.executeQuery("SELECT * FROM table_B 年齢");
rs = stmt.executeQuery("SELECT * FROM TABLE_A 名前");
rs = stmt.executeQuery("SELECT * FROM TABLE_B 名前");
自分も実行しましたがココがダメみたいですね~。
DBをTABLE_AとTABLE_Bで分ける必要ってあるのですか…?
別に分ける必要がなければTABLE_Aに名前と年齢を一緒にして
SQL文を実行した方がいいと思います。
分ける理由があるのであれば#1の人の説明通り
ResultSetやStatementなどを考えた方がいいかもしれないです。
No.1
- 回答日時:
> if (request.getParameter("buttonA") != null) {
> // テキストボックスの値を取得
> String paramA = request.getParameter("NamA");
> // SQL()を実行して、結果を得る
> rs = stmt.executeQuery("SELECT * FROM TABLE_A where 年齢='"+ paramA +"'");
> rs = stmt.executeQuery("SELECT * FROM TABLE_B where 年齢='"+ paramA +"'");
> }
SQL自体はDBのテーブル構成が分からないので置いておきますが…(多分平気)
単純にResultSetを上書きしているように見えます。
SQLServerは持ってないのでMySQLで試しましたが
それを分けてやるとちゃんと動きますね。
この回答への補足
ありがとございます。
rs=SQL文を上書きしていると言う事ですか?
ありがとうございます。
分けると仰っているのはどの様に記述すれば宜しいのでしょうか?
rs1=SQL
rs2=SQL
とかでしょうか?
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列にnullを代入すると、null...
-
Java配列でNullPointerExceptio...
-
ORA-01858: 数値を指定する箇所...
-
BOOL値を逆にしたい
-
eclipseでoracle接続時のエラー...
-
C# ListBoxのインデックスの値...
-
例外でBeanUtils.populateが、...
-
jsp/Servletの動的に増えるフォ...
-
getStringの値がNULLの時の処理
-
アルゴリズム フローチャート
-
HashMapで要素を指定から削除
-
(o==null ? get(i)==null : o.e...
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
ダブルクォーテーションのrepla...
-
「続行するには何かキーを押し...
-
VBAで配列の計算
-
ページング
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列にnullを代入すると、null...
-
ORA-01858: 数値を指定する箇所...
-
Java配列でNullPointerExceptio...
-
getStringの値がNULLの時の処理
-
BOOL値を逆にしたい
-
C# ListBoxのインデックスの値...
-
eclipseでoracle接続時のエラー...
-
gas カレンダー祭日設定でエラー
-
Stringを返す getText()メソッ...
-
Javascript エラーメッセージが...
-
JSPで複数のSQL実行につ...
-
jsp/Servletの動的に増えるフォ...
-
JSPでの画面表示の方法
-
例外でBeanUtils.populateが、...
-
C#でラジオボタンとコンボボッ...
-
Safari ダウンロード時に日本語...
-
java 引数 戻り値のあるメソッド
-
HashMapがおかしい
-
逆コンパイルの見方について(...
-
JavaScriptのnullはいつ使う?
おすすめ情報