- PR -

JSPとMySQLを使って

1
投稿者投稿内容
Ryo
会議室デビュー日: 2004/05/26
投稿数: 3
投稿日時: 2004-05-26 11:43
JSPからMySQlに保存させたいのですができません。JSPのテキストボックスからは保存させることができたのですが、JSPの選択リストから保存することができません。どうしてでしょうか?
Statement st = conn.createStatement();
String sql = "UPDATE hyouka SET "
+ " no = '" + no[f] + "', name = '" + name[f] + "',"
+ " syu1 ='" + request.getParameter("syu1") + "',"
+ " syu2 ='" + request.getParameter("syu2") + "',"
+ " syu3 ='" + request.getParameter("syu3") + "',"
+ " syu4 ='" + request.getParameter("syu4") + "',"
+ " syu5 ='" + request.getParameter("syu5") + "',"
+ " syu6 ='" + request.getParameter("syu6") + "',"
+ " syu7 ='" + request.getParameter("syu7") + "',"
+ " syu8 ='" + request.getParameter("syu8") + "',"
+ " syu9 ='" + request.getParameter("syu9") + "',"
+ " syu10 ='" + request.getParameter("syu10") + "',"
+ " syu11 ='" + request.getParameter("syu11") + "',"
+ " syu12 ='" + request.getParameter("syu12") + "',"
+ " syu13 ='" + request.getParameter("syu13") + "',"
+ " syu14 ='" + request.getParameter("syu14") + "',"
+ " syu15 ='" + request.getParameter("syu15") + "',"
+ " ten ='" + request.getParameter("ten") + "',"
+ " hyouka ='" + request.getParameter("hyouka") + "' WHERE ID =" +aa[f];
st=conn.createStatement();
st.executeUpdate(sql);
}
プログラムはこんな感じにしています。多分この部分がダメだとは思います。一応、参考書を見本に作っています。お気づきのところがありました是非返信を。
カヌー
会議室デビュー日: 2003/01/14
投稿数: 19
投稿日時: 2004-05-26 12:40
これだけの情報では何もわかりませんよ。

例外が出てるならスタックトレースの内容を載せるとか、JSPをどう実装しているのかとか、String sqlの内容をコンソールに表示してみるとか、もうちょっと工夫をして投稿してみてはいかがでしょうか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-26 12:41
まず JSP と MySQL を切り分けて考えてみてはいかがでしょうか?レイヤが異なりますので。

・選択リストからの値の取得が行えない
のか
・複数の String オブジェクトを渡す SQL の生成が行えない
のか・・・。どちらがわかりませんか?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-05-26 13:09
引用:

JSPからMySQlに保存させたいのですができません。JSPのテキストボックスからは保存させることができたのですが、JSPの選択リストから保存することができません。どうしてでしょうか?



テキストボックスから値を取得してうまくいってて、
それをリストボックスに変更してエラーになったのなら、
まずするべきことは、リストボックスから、ちゃんと値が取得できたかどうか
を確認することではないでしょうか。

しかし、それよりも、
動かなくなった原因が、SQL実行コードに関係があると、
どうして考えたのか、のほうが気になります。

[ メッセージ編集済み 編集者: Edosson 編集日時 2004-05-26 13:15 ]
Ryo
会議室デビュー日: 2004/05/26
投稿数: 3
投稿日時: 2004-05-26 15:02
引用:

インギさんの書き込み (2004-05-26 12:41) より:
まず JSP と MySQL を切り分けて考えてみてはいかがでしょうか?レイヤが異なりますので。

・選択リストからの値の取得が行えない
のか
・複数の String オブジェクトを渡す SQL の生成が行えない
のか・・・。どちらがわかりませんか?



多分、複数の String オブジェクトを渡す SQL の生成が行えない方だと思います。
プログラムの部分でいえば
String[] aa = request.getParameterValues("c1");
String[] bb = request.getParameterValues("d1");
aa = bb;
String[] no = request.getParameterValues("no");
String[] name = request.getParameterValues("name");

String[] syu1 = request.getParameterValues("syu1");
String[] syu2 = request.getParameterValues("syu2");
String[] syu3 = request.getParameterValues("syu3");
String[] syu4 = request.getParameterValues("syu4");
String[] syu5 = request.getParameterValues("syu5");
String[] syu6 = request.getParameterValues("syu6");
String[] syu7 = request.getParameterValues("syu7");
String[] syu8 = request.getParameterValues("syu8");
String[] syu9 = request.getParameterValues("syu9");
String[] syu10 = request.getParameterValues("syu10");
String[] syu11 = request.getParameterValues("syu11");
String[] syu12 = request.getParameterValues("syu12");
String[] syu13 = request.getParameterValues("syu13");
String[] syu14 = request.getParameterValues("syu14");
String[] syu15 = request.getParameterValues("syu15");
String[] ten = request.getParameterValues("ten");
String[] hyouka = request.getParameterValues("hyouka");
の部分だと思うのですが・・・

いっきゅう
大ベテラン
会議室デビュー日: 2004/04/04
投稿数: 153
お住まい・勤務地: 兵庫
投稿日時: 2004-05-26 16:04
まず処理を作る前にPOSTされてきているデータを確認しましたか?
それがRyoさんが想定しているものと異なっていれば当然動きませんよね?

下記はPOSTパラメータを列挙するサンプルですが
まずどんなデータが送られているか確認して見てください。

java.util.Enumeration enum = request.getParameterNames();
String key = "";
while ( enum.hasMoreElements() ) {
key = enum.nextElement().toString();
String values[] = request.getParameterValues(key);
for ( int i=0;i<values.length;i++ ) {
System.out.println(key + "[" + i + "] = " + values[i]);
}
}

[ メッセージ編集済み 編集者: いっきゅう 編集日時 2004-05-26 16:05 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-05-26 16:12
引用:

Ryoさんの書き込み (2004-05-26 15:02) より:
引用:

インギさんの書き込み (2004-05-26 12:41) より:
まず JSP と MySQL を切り分けて考えてみてはいかがでしょうか?レイヤが異なりますので。

・選択リストからの値の取得が行えない
のか
・複数の String オブジェクトを渡す SQL の生成が行えない
のか・・・。どちらがわかりませんか?



多分、複数の String オブジェクトを渡す SQL の生成が行えない方だと思います。
プログラムの部分でいえば

(略)

の部分だと思うのですが・・・



?
これは「選択リストからの値の取得が行えない」の方じゃないんですか?

最初から21個、なんてのは、我々凡人は考えなくていいんです。
雲の上の人に任せておきましょう。

ひとつずつ、確認していきましょうよ。

まず、requestから、ひとつ、パラメータを取得できるコードを書きましょう。
動いたら、ひとつ増やして2にして、ちゃんと動くコードを書きましょう。
動いたら、・・・(略)
(略)
動いたら、ひとつ増やして21にして、ちゃんと動くコードを書きましょう。

誰でも、難しい問題はまず単純にして、
少しずつ複雑にしていく、ということをやってるわけです。

それにしても、syuというフィールドが15個、ten、hyoukaというフィールドがあって、
IDをaaという配列に格納しているんですか。
いや、別にどこかで見たことがあるな、とか考えてる訳じゃないですよ。
1

スキルアップ/キャリアアップ(JOB@IT)