- 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)