質問編集履歴

4

ソースコードの追記

2023/01/26 07:34

投稿

kiecna
kiecna

スコア5

test CHANGED
File without changes
test CHANGED
@@ -60,12 +60,51 @@
60
60
  ### 該当のソースコード
61
61
 
62
62
  ```ここに言語名を入力
63
+ try {
64
+ Class.forName("com.mysql.cj.jdbc.Driver");
63
- //データベースに接続する
65
+ //データベースに接続する
66
+ try (Connection con = DriverManager.getConnection(url, user, password);
67
+ PreparedStatement ps = con.prepareStatement(sql)){
68
+
69
+ //sqlの実行
70
+ ResultSet rs = ps.executeQuery();
71
+
72
+ //データの数
73
+ int dataNum = 0;
74
+
75
+ while (rs.next()) {
76
+ ++dataNum;
77
+ System.out.println(dataNum + "回目");
78
+ }
79
+
80
+ //データ格納の配列
81
+ String[][] array = new String[dataNum][3];
64
82
 
65
- try {Class.forName("com.mysql.cj.jdbc.Driver");
66
- //データベースに接続
83
+ //データの数だけ繰り返
84
+ for (int a=0; a < dataNum; a++) {
85
+ //取得したデータのname_jpを取得
67
- try (Connection con = DriverManager.getConnection(url, user, password);
86
+ array[a][0] = rs.getString("name_jp");
87
+ //取得したデータのname_jpを取得
68
- PreparedStatement ps = con.prepareStatement(sql)){
88
+ array[a][1] = rs.getString("name_eng");
89
+ //取得したデータのname_jpを取得
90
+ array[a][2] = rs.getString("region");
91
+ }
92
+
93
+ //リクエストスコープに値を設定する
94
+ request.setAttribute("dataNum", dataNum);
95
+ request.setAttribute("array", array);
96
+
97
+ // region.jspへフォワード
98
+ RequestDispatcher rd = request.getRequestDispatcher("/region.jsp");
99
+ rd.forward(request, response);
100
+
101
+
102
+ }}catch (SQLException | ClassNotFoundException e) {
103
+ e.printStackTrace();
104
+ }finally {
105
+ System.out.println(sql);
106
+ System.out.println("プログラムを終了します。");
107
+ }
69
108
 
70
109
  ```
71
110
 

3

エラーメッセージ追記

2023/01/26 07:01

投稿

kiecna
kiecna

スコア5

test CHANGED
File without changes
test CHANGED
@@ -22,10 +22,39 @@
22
22
  ### 発生している問題・エラーメッセージ
23
23
 
24
24
  ```
25
+ java.sql.SQLException: After end of result set
25
26
  at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
26
27
  at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
27
28
  at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
28
29
  at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
30
+ at com.mysql.cj.jdbc.result.ResultSetImpl.checkRowPos(ResultSetImpl.java:532)
31
+ at com.mysql.cj.jdbc.result.ResultSetImpl.getString(ResultSetImpl.java:878)
32
+ at com.mysql.cj.jdbc.result.ResultSetImpl.getString(ResultSetImpl.java:896)
33
+ at RegionServlet.doPost(RegionServlet.java:137)
34
+ at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
35
+ at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
36
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
37
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
38
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
39
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
40
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
41
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
42
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
43
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
44
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
45
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
46
+ at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
47
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
48
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
49
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
50
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
51
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
52
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
53
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
54
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
55
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
56
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
57
+ at java.base/java.lang.Thread.run(Thread.java:833)
29
58
  ```
30
59
 
31
60
  ### 該当のソースコード

2

画面キャプチャ

2023/01/26 05:01

投稿

kiecna
kiecna

スコア5

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
  jar=mysql-connector-java-8.0.29.jarを再度追加
13
13
  ⇒変化なし
14
14
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-26/d144abe6-efc2-48a4-9f81-ec0d6ef00f2f.jpeg)
15
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-26/a520b9fe-92d3-4ee6-9ced-dcded2f6b88e.jpeg)
15
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-26/a3c231b5-3609-482d-8f05-f935154769b3.jpeg)
16
16
 
17
17
  try( の前に下記を追加
18
18
  try {Class.forName("com.mysql.jdbc.Driver");

1

画面キャプチャの追加、エラー内容の変化

2023/01/26 04:08

投稿

kiecna
kiecna

スコア5

test CHANGED
File without changes
test CHANGED
@@ -2,29 +2,41 @@
2
2
 
3
3
  データベースに接続する部分で下記エラーが出力されます。
4
4
 
5
- No suitable driver found for jdbc:mysql://127.0.0.1:3306/
5
+ 最初のエラー:No suitable driver found for jdbc:mysql://127.0.0.1:3306/
6
+
7
+ ↓Class.forName("com.mysql.jdbc.Driver");を追加
8
+
9
+ 現在のエラー:at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException
6
10
 
7
11
  ### 試したこと
8
12
  jar=mysql-connector-java-8.0.29.jarを再度追加
9
13
  ⇒変化なし
14
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-26/d144abe6-efc2-48a4-9f81-ec0d6ef00f2f.jpeg)
15
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-26/a520b9fe-92d3-4ee6-9ced-dcded2f6b88e.jpeg)
10
16
 
11
- try{ のに下記を追加
17
+ try( のに下記を追加
12
- Class.forName("com.mysql.jdbc.Driver");
18
+ try {Class.forName("com.mysql.jdbc.Driver");
13
- ⇒エラーが発生トークンに構文エラーがあります。代わりに Resources を指定する必要があります
19
+ ⇒エラー内容変化at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException
14
20
 
15
21
 
16
22
  ### 発生している問題・エラーメッセージ
17
23
 
18
24
  ```
19
- java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/sample
25
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
26
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
27
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
28
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
20
29
  ```
21
30
 
22
31
  ### 該当のソースコード
23
32
 
24
33
  ```ここに言語名を入力
25
34
  //データベースに接続する
35
+
36
+ try {Class.forName("com.mysql.cj.jdbc.Driver");
37
+ //データベースに接続する
26
- try (Connection con = DriverManager.getConnection(url, user, password);
38
+ try (Connection con = DriverManager.getConnection(url, user, password);
27
- PreparedStatement ps = con.prepareStatement(sql)){
39
+ PreparedStatement ps = con.prepareStatement(sql)){
28
40
 
29
41
  ```
30
42