質問編集履歴

3

質問に対する追記/dao/servlet

2022/03/21 05:32

投稿

userY
userY

スコア44

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,25 @@
1
1
  初学者です。よろしくお願いいたします。
2
2
 
3
3
  jsp画面で一覧表示したListから、form post送信でデータを選択したものを dao sqlで抽出したいのですが、サーブレットで取得したidパラメータが0になってしまい、抽出表示画面ではデータがnullとなります。
4
+
5
+ ---
6
+ 質問に対する追記・変更
7
+
8
+ 変更:一覧表示jsp form のname="id"と訂正し、servletでidをInteger.parseIntに戻しました。
9
+
10
+ id=5と数字が入るようになりました。ご指摘ありがとうございました。
11
+
12
+ 次に、以下のような警告が出ました。
13
+ ```ここに言語を入力
14
+ org.postgresql.util.PSQLException: 適切な位置にいない ResultSetです。おそらく、nextを呼ぶ必要があります。
15
+ ```
16
+ 変更:エラーメッセージが rs.next();の行を示していたので、if(rs.next()){ }と書き換えました。
17
+
18
+ 警告は消えましたが、抽出したいデータ cName,address,tel_numberはnullのままです。
19
+
20
+ 基礎が甘く、多方面で調べたコードを参考にしており、統一性がなく読みづらいコードで申し訳ありません。
21
+
22
+
4
23
 
5
24
  ---
6
25
 
@@ -19,7 +38,7 @@
19
38
  ---
20
39
  <%for(Customer cs : customerList){ %>
21
40
  <form action="/Sukkiri/ShowServlet" method="post">
22
- <td><input type="submit" name=" <%=cs.getId()%>" value="<%=cs.getId()%>"></td>
41
+ <td><input type="submit" **name=" id"** value="<%=cs.getId()%>"></td>
23
42
  </form>
24
43
  --
25
44
  ```
@@ -46,14 +65,14 @@
46
65
  //SELECT文を実行
47
66
  ResultSet rs=pStmt.executeQuery();
48
67
  //SELECT文の結果をcustomerに格納
49
- rs.next();
68
+ **if(rs.next());{**
50
69
  int id=myId;
51
70
  String cName=rs.getString("cName");
52
71
  String address=rs.getString("address");
53
72
  String tel_number=rs.getString("tel_number");
54
73
 
55
74
  customer = new Customer(id,cName,address,tel_number);
56
-
75
+ **}**
57
76
 
58
77
  }catch(SQLException e){
59
78
  e.printStackTrace();
@@ -75,15 +94,15 @@
75
94
  UpdateDao dao = new UpdateDao();
76
95
  Customer oneCustomer =dao.select_customer(id);
77
96
 
78
- //id=Integer.parseInt(request.getParameter("id"));
97
+ **id=Integer.parseInt(request.getParameter("id"));**
79
-      //integerを使うと500例外となったので以下のようにidを訂正しました。
98
+      
80
99
 
81
100
  String cName =request.getParameter("cName");
82
101
  String address=request.getParameter("address");
83
102
  String tel_number=request.getParameter("tel_number");
84
-
85
- id=oneCustomer.getId();
103
+
86
- System.out.println(id);//ここで0になります。
104
+ System.out.println(id+cName+address+tel_number);
105
+ ** //ここで出力結果が(5 null null null)になります。**
87
106
 
88
107
  request.setAttribute("oneCustomer", oneCustomer);
89
108
 

2

dao コメント文訂正

2022/03/19 23:13

投稿

userY
userY

スコア44

test CHANGED
File without changes
test CHANGED
@@ -45,7 +45,7 @@
45
45
  pStmt.setInt(1, myId);
46
46
  //SELECT文を実行
47
47
  ResultSet rs=pStmt.executeQuery();
48
- //SELECT文の結果をARRAYLIST に格納
48
+ //SELECT文の結果をcustomerに格納
49
49
  rs.next();
50
50
  int id=myId;
51
51
  String cName=rs.getString("cName");

1

追記:model

2022/03/19 14:16

投稿

userY
userY

スコア44

test CHANGED
File without changes
test CHANGED
@@ -167,5 +167,48 @@
167
167
  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
168
168
  注意 原因のすべてのスタックトレースは、サーバのログに記録されています
169
169
  ```
170
-
170
+ model
171
-
171
+ ```ここに言語を入力
172
+ package model;
173
+
174
+ public class Customer {
175
+ private int id;
176
+ private String cName;
177
+ private String address;
178
+ private String tel_number;
179
+
180
+ public Customer() {}
181
+
182
+ public Customer(String cName,String address,String tel_number) {
183
+
184
+ this.cName=cName;
185
+ this.address=address;
186
+ this.tel_number=tel_number;}
187
+
188
+
189
+
190
+ public Customer(int id,String cName,String address,String tel_number) {
191
+ this.id=id;
192
+ this.cName=cName;
193
+ this.address=address;
194
+ this.tel_number=tel_number;
195
+
196
+ }
197
+
198
+ public int getId() {return id;}
199
+ public void setId(int id) {this.id =id;}
200
+
201
+ public String getCname() {return cName;}
202
+ public void setCname(String cName) {this.cName = cName;}
203
+
204
+ public String getAddress() {return address;}
205
+ public void setAddress(String address) {this.address = address;}
206
+
207
+ public String getTel_number() {return tel_number;}
208
+ public void setTel_number(String tel_number) {this.tel_number = tel_number;}
209
+
210
+ }
211
+
212
+ ```
213
+
214
+