前提
データベースに接続する部分で下記エラーが出力されます。
最初のエラー:No suitable driver found for jdbc:mysql://127.0.0.1:3306/
↓
↓Class.forName("com.mysql.jdbc.Driver");を追加
↓
現在のエラー:at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException
試したこと
jar=mysql-connector-java-8.0.29.jarを再度追加
⇒変化なし
try( の前に下記を追加
try {Class.forName("com.mysql.jdbc.Driver");
⇒エラー内容が変化「at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException」
発生している問題・エラーメッセージ
java.sql.SQLException: After end of result set at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.result.ResultSetImpl.checkRowPos(ResultSetImpl.java:532) at com.mysql.cj.jdbc.result.ResultSetImpl.getString(ResultSetImpl.java:878) at com.mysql.cj.jdbc.result.ResultSetImpl.getString(ResultSetImpl.java:896) at RegionServlet.doPost(RegionServlet.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833)
該当のソースコード
try { Class.forName("com.mysql.cj.jdbc.Driver"); //データベースに接続する try (Connection con = DriverManager.getConnection(url, user, password); PreparedStatement ps = con.prepareStatement(sql)){ //sqlの実行 ResultSet rs = ps.executeQuery(); //データの数 int dataNum = 0; while (rs.next()) { ++dataNum; System.out.println(dataNum + "回目"); } //データ格納の配列 String[][] array = new String[dataNum][3]; //データの数だけ繰り返す for (int a=0; a < dataNum; a++) { //取得したデータのname_jpを取得 array[a][0] = rs.getString("name_jp"); //取得したデータのname_jpを取得 array[a][1] = rs.getString("name_eng"); //取得したデータのname_jpを取得 array[a][2] = rs.getString("region"); } //リクエストスコープに値を設定する request.setAttribute("dataNum", dataNum); request.setAttribute("array", array); // region.jspへフォワード RequestDispatcher rd = request.getRequestDispatcher("/region.jsp"); rd.forward(request, response); }}catch (SQLException | ClassNotFoundException e) { e.printStackTrace(); }finally { System.out.println(sql); System.out.println("プログラムを終了します。"); }

回答1件
あなたの回答
tips
プレビュー