- PR -

jspとmysqlについて

投稿者投稿内容
いちじ
会議室デビュー日: 2004/05/21
投稿数: 15
投稿日時: 2004-05-21 16:51
jspとmysqlを使っています。
セレクトタグを使って指定したものをmysqlのデータベースに保存したいと思っているのですがデータベースにうまく保存できません。

<td>
<select name="shukketu">
<option>出席</option>
<option>遅刻</option>
<option>欠席</option>
</select>
</td>
と打ちましたがここからmysqlのデータベースへの保存の仕方がわからないので困っています。
参考になるものがあればぜひ教えてください。


山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-21 17:13
JSP とデータベースでは随分レイヤーがちがうのでご質問からは一発では回答できませんね。
・form から送信された情報の取得
・情報からの SQL の生成
・mysql との接続(JDBC プログラミング)
などのトピックがありますがどれがわかりませんか?
いちじ
会議室デビュー日: 2004/05/21
投稿数: 15
投稿日時: 2004-05-21 17:52
追加ボタンや削除ボタンを作って実行してみたらちゃんと出来たのですが、変更ボタンを作って実行してみたところ、変更されず、元のままでした。
プログラムはこうです。
try
{
//変更指定されたデータNOを取得する
String[] aa = request.getParameterValues("c1");
String[] bb = request.getParameterValues("d1");
aa = bb;
String[] no = request.getParameterValues("no");
String[] name = request.getParameterValues("name");
String[] shukketu = request.getParameterValues("shukketu");
String[] shukketu2 = request.getParameterValues("shukketu2");
String[] shukketu3 = request.getParameterValues("shukketu3");
String[] shukketu4 = request.getParameterValues("shukketu4");
String[] shukketu5 = request.getParameterValues("shukketu5");
String[] shukketu6 = request.getParameterValues("shukketu6");
String[] shukketu7 = request.getParameterValues("shukketu7");
String[] shukketu8 = request.getParameterValues("shukketu8");
String[] shukketu9 = request.getParameterValues("shukketu9");
String[] shukketu10 = request.getParameterValues("shukketu10");
String[] shukketu11 = request.getParameterValues("shukketu11");
String[] shukketu12 = request.getParameterValues("shukketu12");
String[] shukketu13 = request.getParameterValues("shukketu13");
String[] shukketu14 = request.getParameterValues("shukketu14");
String[] shukketu15 = request.getParameterValues("shukketu15");
String[] ten = request.getParameterValues("ten");
String[] hyouka = request.getParameterValues("hyouka");
for(int i = 0; i < aa.length; i++){

//変更するデータのを取得する
Statement st = conn.createStatement();
String sql6 = "UPDATE kadai SET "
+ " no = '" + no[i] + "', name = '" + name[i] + "',shukketu = '" + shukketu[i] + "',shukketu2 = '" + shukketu2[i] + "',shukketu3 = '" + shukketu3[i] + "',shukketu4 = '" + shukketu4[i] + "',shukketu5 = '" + shukketu5[i] + "',shukketu6 = '" + shukketu6[i] + "',shukketu7 = '" + shukketu7[i] + "',shukketu8 = '" + shukketu8[i] + "',shukketu9 = '" + shukketu9[i] + "',shukketu10 = '" + shukketu10[i] +"', shukketu11 = '" + shukketu11[i] + "',shukketu12 = '" + shukketu12[i] + "',shukketu13 = '" + shukketu13[i] + "',shukketu14 = '" + shukketu14[i] + "',shukketu15 = '" + shukketu15[i] + "', ten = " + ten[i] + ", hyouka = '" + hyouka[i] + "' WHERE ID =" +aa[i];
st.executeUpdate(sql6);
}
//変更したデータを表示する
out.println("データを変更しました");

}
catch (Exception e)
{
out.println("");
}
}
}
shukketu〜shukketu15はセレクトボタンのです。
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2004-05-21 17:58
突っ込みどころが山ほどあってどこからどうしたらいいのかって感じですが、
とりあえず変更ボタンを押したときにサーバ側でException等はでていませんか?
あと、mysqlは使ったことないんですが、デフォルトでautocomitなのですか?
con.setAutoCommit(false)とかやって自分でちゃんとトランザクション管理したほうが
いいと思います。
いっきゅう
大ベテラン
会議室デビュー日: 2004/04/04
投稿数: 153
お住まい・勤務地: 兵庫
投稿日時: 2004-05-21 18:20
引用:

catch (Exception e)
{
out.println("");
}


とりあえず上記を下記のようにしてどんなExceptionが発生しているか
確認して見て下さい。
catch (Exception e)
{
throw new Exception(e);
}
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2004-05-21 18:34
引用:

SKTさんの書き込み (2004-05-21 17:58) より:
あと、mysqlは使ったことないんですが、デフォルトでautocomitなのですか?
con.setAutoCommit(false)とかやって自分でちゃんとトランザクション管理したほうが
いいと思います。



 以下、サンのAPIからjava.sql.Connection#setAutoCommit(boolean)
の記述を抜粋したものです。
[抜粋]
この接続の自動コミットモードを指定された状態に設定します。
接続が自動コミットモードの場合、そのすべての SQL 文は実行され、
個別のトランザクションとしてコミットされます。
そうでない場合、その SQL 文は、commit メソッドまたは
rollback メソッドへの呼び出しによって終了されるトランザクションにグループ化されます。
デフォルトでは、新しい接続は自動コミットモードです。
[/抜粋]
ですから、デフォルトはオートコミットですね。
いちじ
会議室デビュー日: 2004/05/21
投稿数: 15
投稿日時: 2004-05-21 18:44
SKT さんへ
Exceptionは出ていませんでした。con.setAutoCommit(false)をプログラムに追加してみました。これは、追加ボタンや削除ボタンのところにも追加したほうがいいんですかね?
いちじ
会議室デビュー日: 2004/05/21
投稿数: 15
投稿日時: 2004-05-21 18:49
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Thread.java:534)

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