前提、 実現したいこと
データベースから指定したクラスの生徒たちの情報を取り出し、そこから生徒を一人選択して情報を変更(クラス番号、氏名(姓)、氏名(名)、カナ(姓)、カナ(名)、生年月日)し、更新したいです。データベースからクラス番号を検索して取り出し、変更したい生徒の情報を編集するところまでは問題なく動くのですが、最後更新したら例外エラーが出てしまいます。原因がわかる方にご教授願いたいです。
例外として処理されているということはデータ自体は送れていると思います。
発生している問題・エラーメッセージ
-SQL例外 -メッセージ: SQL構文にエラーがあります。'simei_1 ='è�'木'、simei_2 ='å”å¿—'、kana_1 ='アラã‚'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。 kana_2 ='コウã‚・'、umare ='1'1行目
該当のソースコード
jsp
1<%@ page contentType="text/html;charset=UTF-8"%> 2<% response.setContentType("text/html;charset=UTF-8");%> 3 4 5<HTML> 6 <HEAD><TITLE>class_update.jsp</TITLE></HEAD> 7 <BODY BGCOLOR="#FFFFFF"> 8 class_update.jsp 9 <CENTER> 10<CAPTION><FONT SIZE="+3" COLOR="#0000FF"> 11<B><<名簿変更>></B> 12</FONT>></CAPTION>> 13<BR> 14<FORM METHOD= "POST" NAME ="koushin2" ACTION = "/aa22/servlet/class_update3"> 15 16 17<FONT SIZE="+1"COLOR="#0000FF">名簿情報を変更してください。</FONT> 18<P> 19<HR SIZE="5" WIDTH="80%"> 20<CENTER> 21<TABLE BORDER=O> 22<TR> 23<TD>クラス</TD> 24<TD><SELECT NAME="class_no" SIZE="1"> 25<option value ="aaa111">aaa111 26<option value ="aaa112">aaa112 27<option value ="aaa113">aaa113 28<option value="aaa114">aaa114 29<option value="aaa115">aaa115 30<option value="aaa116">aaa116 31<option value="aaa117">aaa117 32<option value="aaa118">aaa118 33<option value="aaa119">aaa119 34<option value="aaa120">aaa120 35<option value="aaa121">aaa121 36<option value="aaa122">aaa122 37<option value="aaa123">aaa123 38<option value="aaa124">aaa124 39<option value="aaa125">aaa125 40<option value="aaa126">aaa126 41<option value="aaa127">aaa127 42<option value="aaa128">aaa128 43<option value="aaa129">aaa129 44</select> 45 46<SCRIPT Language="JavaScript"> 47 48<!-- 49document.koushin2.class_no.selectedIndex = <%= request.getAttribute("class_no").toString() %>; 50// --> 51 52</SCRIPT> 53</TD> 54</TR> 55<TR> 56<TD>出席</TD> 57<TD> 58<INPUT TYPE="TEXT" NAME= "syusseki_no" SIZE = 20 59VALUE = "<%= request.getAttribute("syusseki_no").toString()%>"> 60</TD> 61</TR> 62 63<TR> 64<TD>学籍番号</TD> 65<TD><%= request.getAttribute("gakuseki_no").toString()%></TD> 66<TR> 67 68<TR> 69<TD>氏名(姓)</TD> 70<TD> 71<INPUT TYPE="TEXT" NAME= "simei_1" SIZE = 20 72VALUE = "<%= request.getAttribute("simei_1").toString()%>"> 73</TD> 74</TR> 75 76 77<TR> 78<TD>氏名(名)</TD> 79<TD> 80<INPUT TYPE="TEXT" NAME= "simei_2" SIZE = 20 81VALUE = "<%= request.getAttribute("simei_2").toString()%>"> 82</TD> 83</TR> 84 85<TR> 86<TD>カナ(姓)</TD> 87<TD> 88<INPUT TYPE="TEXT" NAME= "kana_1" SIZE = 20 89VALUE = "<%= request.getAttribute("kana_1").toString()%>"> 90</TD> 91</TR> 92 93<TR> 94<TD>カナ(名)</TD> 95<TD> 96<INPUT TYPE="TEXT" NAME= "kana_2" SIZE = 20 97VALUE = "<%= request.getAttribute("kana_2").toString()%>"> 98</TD> 99</TR> 100 101 102<TR> 103<TD>生年月日</TD> 104<TD> 105<INPUT TYPE="TEXT" NAME= "umare" SIZE = 20 106VALUE = "<%= request.getAttribute("umare").toString()%>"> 107</TD> 108</TR> 109</TABLE> 110<P> 111<HR SIZE="5" WIDTH="80%"> 112<BR><CENTER> 113<INPUT TYPE= "SUBMIT" VALUE="名簿更新"> 114<INPUT TYPE="RESET" VALUE="入力クリア"><BR><BR> 115</FORM> 116 117 118 <HR> 119 <A HREF="/aa11/update.html">名簿選択へ戻る</A> 120 <A HREF="/aa11/class_index.html">メニューへ戻る</A> 121 <BR> 122 </CENTER> 123 </BODY> 124</HTML>
java
1import java.io.IOException; 2import java.io.PrintWriter; 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.SQLException; 6import java.sql.Statement; 7 8import javax.servlet.ServletException; 9import javax.servlet.annotation.WebServlet; 10import javax.servlet.http.HttpServlet; 11import javax.servlet.http.HttpServletRequest; 12import javax.servlet.http.HttpServletResponse; 13@WebServlet(urlPatterns= {"/servlet/class_update3"}) 14public class class_update3 extends HttpServlet{ 15public void doPost( 16HttpServletRequest req, 17HttpServletResponse res) 18throws ServletException,IOException{ 19 20 21 22 23/** 24* DB:URL 25*/ 26 27final String URL = "jdbc:mysql://localhost/nhs10601db?useUnicode=true&characterEncoding=UTF-8"; 28/** 29*DB:ユーザ 30*/ 31final String USER = "root"; 32/** 33*DB:パスワード 34*/ 35final String PASSWORD= "root"; 36/** 37*DB:ドライバ 38*/ 39final String DRIVER = "com.mysql.jdbc.Driver"; 40 41Connection con = null; 42Statement stmt = null; 43 44PrintWriter out; 45req.setCharacterEncoding("UTF-8"); 46res.setContentType("text/html;charset=UTF-8"); 47out = res.getWriter(); 48 49//webブラウザのFormからパラメータを取得 50String koushin2Str = req.getParameter("koushin2"); 51 52String class_noStr = req.getParameter("class_no"); 53String gakuseki_noStr = req.getParameter("gakuseki_no"); 54String syusseki_noStr = req.getParameter("syusseki_no"); 55String simei_1Str = req.getParameter("simei_1"); 56String simei_2Str = req.getParameter("simei_2"); 57String kana_1Str = req.getParameter("kana_1"); 58String kana_2Str = req.getParameter("kana_2"); 59String umareStr = req.getParameter("umare"); 60 61 62 63try{ 64//MySQL Driver ローディング 65Class.forName(DRIVER); 66//MySQLへの接続 67con = DriverManager.getConnection(URL,USER,PASSWORD); 68//SQL格納 69stmt = con.createStatement(); 70 71//SQL実行名簿テーブル更新 72 73StringBuffer query = new StringBuffer(); 74query.append("UPDATE class_table SET class_no ='"); 75query.append(class_noStr); 76query.append("',syusseki_no='"); 77query.append(syusseki_noStr); 78query.append("'WHERE gakuseki_no='"); 79query.append(gakuseki_noStr); 80query.append("',simei_1='"); 81query.append(simei_1Str); 82query.append("',simei_2='"); 83query.append(simei_2Str); 84query.append("',kana_1='"); 85query.append(kana_1Str); 86query.append("',kana_2='"); 87query.append(kana_2Str); 88query.append("',umare='"); 89query.append(umareStr); 90query.append("')"); 91stmt.executeUpdate(query.toString()); 92 93 94 95//S更新結果 表示 96StringBuffer sb = new StringBuffer(); 97sb.append("<html>"); 98sb.append("<head><title>名簿変更</title></head>"); 99sb.append("<body bgcolor='#ffffff'>"); 100sb.append("class_update3.java"); 101sb.append("<center>"); 102sb.append("<CAPTION><FONT SIZE='+3' COLOR='#0000FF'>"); 103sb.append("<B>"); 104query.append("'"); 105sb.append("<<名簿変更>>"); 106sb.append("</B></FONT></CAPTION>"); 107sb.append("<h1>"); 108sb.append("<BR><BR><BR>"); 109sb.append("<h1>"); 110sb.append("名簿変更完了しました。"); 111sb.append("</h1>"); 112sb.append("</center><br><br>"); 113sb.append("<HR><A HREF='/aa11/class_update1.html'>"); 114sb.append("名簿更新に戻る"); 115sb.append("</A>"); 116sb.append("<A HREF='/aa11/class_index.html'>"); 117sb.append("ホームへ戻る"); 118sb.append("</A>"); 119sb.append("</body>"); 120sb.append("</html>"); 121out.println(sb.toString()); 122 123//切断 124 125stmt.close(); 126con.close(); 127} 128//例外処理 129 130catch(SQLException ex){ 131 out.println("-SQL Exception-" + "<BR>" ); 132 out.println( "Message : " + "<BR>" ); 133 134while(ex != null){ 135 out.println(ex.getMessage()+ "<BR>"); 136 ex = ex.getNextException(); 137 } 138} 139 140catch(Exception ex){ 141 ex.printStackTrace(out); 142 } 143 } 144} 145 146 147 148 149 150
試したこと
このエラーが出る前にほかのエラーが出てたので、org.git.mm.mysql.Driverを
final String DRIVER = "com.mysql.jdbc.Driver";になおしたら今回のエラーが出てきました。(前のエラーは解決。)
sqlのバージョンは14.12です。
Eclipseはヘルプで調べたところVersion: Photon Release (4.8.0)でした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/06 16:44
2022/06/06 22:45
2022/06/07 02:19