- - PR -
jspとmysqlについて
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-05-21 16:51
jspとmysqlを使っています。
セレクトタグを使って指定したものをmysqlのデータベースに保存したいと思っているのですがデータベースにうまく保存できません。 <td> <select name="shukketu"> <option>出席</option> <option>遅刻</option> <option>欠席</option> </select> </td> と打ちましたがここからmysqlのデータベースへの保存の仕方がわからないので困っています。 参考になるものがあればぜひ教えてください。 | ||||
|
投稿日時: 2004-05-21 17:13
JSP とデータベースでは随分レイヤーがちがうのでご質問からは一発では回答できませんね。
・form から送信された情報の取得 ・情報からの SQL の生成 ・mysql との接続(JDBC プログラミング) などのトピックがありますがどれがわかりませんか? | ||||
|
投稿日時: 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はセレクトボタンのです。 | ||||
|
投稿日時: 2004-05-21 17:58
突っ込みどころが山ほどあってどこからどうしたらいいのかって感じですが、
とりあえず変更ボタンを押したときにサーバ側でException等はでていませんか? あと、mysqlは使ったことないんですが、デフォルトでautocomitなのですか? con.setAutoCommit(false)とかやって自分でちゃんとトランザクション管理したほうが いいと思います。 | ||||
|
投稿日時: 2004-05-21 18:20
とりあえず上記を下記のようにしてどんなExceptionが発生しているか 確認して見て下さい。 catch (Exception e) { throw new Exception(e); } | ||||
|
投稿日時: 2004-05-21 18:34
以下、サンのAPIからjava.sql.Connection#setAutoCommit(boolean) の記述を抜粋したものです。 [抜粋] この接続の自動コミットモードを指定された状態に設定します。 接続が自動コミットモードの場合、そのすべての SQL 文は実行され、 個別のトランザクションとしてコミットされます。 そうでない場合、その SQL 文は、commit メソッドまたは rollback メソッドへの呼び出しによって終了されるトランザクションにグループ化されます。 デフォルトでは、新しい接続は自動コミットモードです。 [/抜粋] ですから、デフォルトはオートコミットですね。 | ||||
|
投稿日時: 2004-05-21 18:44
SKT さんへ
Exceptionは出ていませんでした。con.setAutoCommit(false)をプログラムに追加してみました。これは、追加ボタンや削除ボタンのところにも追加したほうがいいんですかね? | ||||
|
投稿日時: 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) | ||||
