質問編集履歴

1

ああああああああああああああああああ

2022/05/17 11:11

投稿

wassan_nikoniko
wassan_nikoniko

スコア9

test CHANGED
@@ -1 +1 @@
1
- DBの値とjspの値を更新したい
1
+ ああああああああああああああああああ
test CHANGED
@@ -1,553 +1 @@
1
- ### 前提・実現したいこと
2
-
3
- 現在、商品情報を管理するようなアプリを作成しており、以下の流れで処理をしていきたいと考えております。
4
-
5
-
6
-
7
- 一覧Servlet・・・get ⇒ 一覧画面表示(Top画面)
8
-
9
- 登録Servlet・・・get ⇒ 登録画面表示
10
-
11
-         post ⇒ 登録画面で入力された値をDB insert
12
-
13
-             ⇒ 一覧画面表示
14
-
15
- 詳細Servlet・・・post ⇒ IDを基にDB検索して更新(詳細)画面表示
16
-
17
- 更新Servlet・・・post ⇒ 更新画面で入力された値でDB update
18
-
19
-             ⇒ 一覧画面表示
20
-
21
-
22
-
23
- ここの更新のところで躓いており、作業が停滞しております。
24
-
25
- やりたいこととして、DB上の値と一覧画面で表示する値を更新画面で入力した値で更新したいといったところになるのですが、update文に入れるプレースホルダーのところをどのように記述したらいいのかがわからず質問させていただきたいです。いろいろと調べてみたのですが解決に至りませんでした。
26
-
27
- ご指導のほどよろしくお願いします。
28
-
29
-
30
-
31
-
32
-
33
- ```Listjsp
34
-
35
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
36
-
37
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
38
-
39
- <%@ page import="enums.ProductGenre" %>
40
-
41
- <%@ page import="beans.Product"%>
42
-
43
-
44
-
45
- <!DOCTYPE html>
46
-
47
- <html lang="ja" dir="ltr">
48
-
49
- <head>
50
-
51
- <meta charset="utf-8">
52
-
53
- <link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/style.css">
54
-
55
- <title>JSPの基本</title>
56
-
57
- </head>
58
-
59
- <body>
60
-
61
-
62
-
63
- <form action="/pda.k.oonuki/ProductSubmit" method="post">
64
-
65
- <input class="input1" type="image" name="検索" value="検索" src="image/検索1.png">
66
-
67
- <input type="image" name="登録" value="登録" src="image/検索1.png"><br>
68
-
69
- </form>
70
-
71
-
72
-
73
- <table border="1">
74
-
75
- <tr>
76
-
77
- <th>商品ID</th>
78
-
79
- <th>画像</th>
80
-
81
- <th>メーカー名</th>
82
-
83
- <th>商品名</th>
84
-
85
- <th>ジャンル</th>
86
-
87
- <th>在庫数</th>
88
-
89
- <th>販売個数</th>
90
-
91
- <th>価格</th>
92
-
93
- <th>更新</th>
94
-
95
- </tr>
96
-
97
- <c:forEach var="productdata" items="${productlist}">
98
-
99
- <tr>
100
-
101
- <td>${productdata.productId}</td>
102
-
103
- <td><img class="watch" src="image/Aandyou_SW_E07_一覧用.png"></td>
104
-
105
- <td>${productdata.productMaker}</td>
106
-
107
- <td>${productdata.productName}</td>
108
-
109
- <td>
110
-
111
- <c:forEach var="genre" items="${ProductGenre.values()}">
112
-
113
- <c:if test="${productdata.productGenreCode == genre.genrecode }">${genre.genrename}</c:if>
114
-
115
- </c:forEach>
116
-
117
- </td>
118
-
119
- <td>${productdata.productStock}</td>
120
-
121
- <td>${productdata.productSales}</td>
122
-
123
- <td>${productdata.productPrice}</td>
124
-
125
- <td>
126
-
127
- <form action="/pda.k.oonuki/ProductDetail" method="post">
128
-
129
- <input name="productID" type="hidden" value="${productdata.productId}">
130
-
131
- <input type="submit" value="更新">
132
-
133
- </form>
134
-
135
- </td>
136
-
137
- </tr>
138
-
139
- </c:forEach>
140
-
141
- </table>
142
-
143
- </body>
144
-
145
- </html>
146
-
147
- ```
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
- ```updatejsp
156
-
157
- <%@ page language="java" contentType="text/html; charset=UTF-8"
158
-
159
- pageEncoding="UTF-8"%>
160
-
161
- <%@ page import="enums.ProductGenre"%>
162
-
163
- <%@ page import="enums.ProductMaker"%>
164
-
165
- <%@ page import="beans.Product"%>
166
-
167
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
168
-
169
- <!DOCTYPE html>
170
-
171
- <html>
172
-
173
- <head>
174
-
175
- <link rel="stylesheet" type="text/css"href="<%=request.getContextPath()%>/css/ProductInfo.css">
176
-
177
- <meta charset="UTF-8">
178
-
179
- <title>商品情報登録</title>
180
-
181
- </head>
182
-
183
- <body>
184
-
185
- <form action="/pda.k.oonuki/ProductUpdate" method="POST">
186
-
187
- <div class="row">
188
-
189
- <p>商品ID</p>
190
-
191
- <p>ジャンル</p>
192
-
193
- </div>
194
-
195
-
196
-
197
- <input type="text" name="product_ID" placeholder="${IDdata.productId }">
198
-
199
- <select name="product_genre_code">
200
-
201
- <c:forEach var="genre" items="${ProductGenre.values()}">
202
-
203
- <option value="${genre.genrecode}"<c:if test="${IDdata.productGenreCode == genre.genrecode }">selected</c:if>>${genre.genrename}</option>
204
-
205
- </c:forEach>
206
-
207
- </select>
208
-
209
-
210
-
211
- <div class="row">
212
-
213
- <p>商品名</p>
214
-
215
- <p>メーカー名</p>
216
-
217
- </div>
218
-
219
-
220
-
221
- <input type="text" name="product_name" placeholder="${IDdata.productName}">
222
-
223
- <select name="product_maker">
224
-
225
- <c:forEach var="maker" items="${ProductMaker.values() }">
226
-
227
- <option value="${maker.makername}"<c:if test="${IDdata.productMaker == maker.makername }"></c:if>>${maker.makername}</option>
228
-
229
- </c:forEach>
230
-
231
- </select>
232
-
233
-
234
-
235
- <div class="row">
236
-
237
- <p>金額</p>
238
-
239
- <p>在庫数</p>
240
-
241
- </div>
242
-
243
-
244
-
245
- <input type="text" name="product_price" placeholder="${IDdata.productPrice}">
246
-
247
- <input type="text" name="product_stock" placeholder="${IDdata.productStock }">
248
-
249
-
250
-
251
- <div class="row">
252
-
253
- <p>販売個数</p>
254
-
255
- </div>
256
-
257
-
258
-
259
- <input type="text" name="product_sales" placeholder="${IDdata.productSales}">
260
-
261
-
262
-
263
- <div class="row">
264
-
265
- <p>備考</p>
266
-
267
- </div>
268
-
269
-
270
-
271
- <textarea name="product_remarks" rows="5" placeholder="${IDdata.productRemarks}"></textarea><br>
272
-
273
- <button type="submit" name="submit">更新</button>
274
-
275
- </form>
276
-
277
- </body>
278
-
279
- </html>
280
-
281
- ```
282
-
283
- ```updatejsp
284
-
285
- package servlet;
286
-
287
-
288
-
289
- import java.io.IOException;
290
-
291
- import java.sql.SQLException;
292
-
293
-
294
-
295
- import javax.servlet.ServletException;
296
-
297
- import javax.servlet.annotation.WebServlet;
298
-
299
- import javax.servlet.http.HttpServlet;
300
-
301
- import javax.servlet.http.HttpServletRequest;
302
-
303
- import javax.servlet.http.HttpServletResponse;
304
-
305
-
306
-
307
- import beans.Product;
308
-
309
- import dao.ProductUpdateDao;
310
-
311
-
312
-
313
- /**
314
-
315
- * DBにある値を更新するためのサーブレット
316
-
317
- *
318
-
319
- * @author k.oonuki
320
-
321
- * @version 1.0.0
322
-
323
- */
324
-
325
- @WebServlet("/ProductUpdate")
326
-
327
- public class ProductUpdateServlet extends HttpServlet {
328
-
329
-
330
-
331
- /** シリアルバージョンUID */
332
-
333
- private static final long serialVersionUID = 169289663218272112L;
334
-
335
-
336
-
337
- /**
338
-
339
- * beansでるProductクラスのフィールドを更新するためのメソッド
1
+ あああああああああああああああああああああああああああああああああああ
340
-
341
- *
342
-
343
- * @param request サーブレットのリクエストを表す
344
-
345
- * @param response サーブレットのレスポンスを表す
346
-
347
- * @throws ServletException SQL実行時に起こりうる例外
348
-
349
- * @exception IOException ファイル入出力地に起こりうる例外
350
-
351
- */
352
-
353
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
354
-
355
- throws ServletException, IOException {
356
-
357
- String product_Genre_Code = request.getParameter("product_genre_code");
358
-
359
- String product_name = request.getParameter("product_name");
360
-
361
- String product_maker = request.getParameter("product_maker");
362
-
363
- int product_price = Integer.parseInt(request.getParameter("product_price"));
364
-
365
- int product_stock = Integer.parseInt(request.getParameter("product_stock"));
366
-
367
- int product_sales = Integer.parseInt(request.getParameter("product_sales"));
368
-
369
- String product_remarks = request.getParameter("product_remarks");
370
-
371
-
372
-
373
- Product product = new Product();
374
-
375
- product.setProductGenreCode(product_Genre_Code);
376
-
377
- product.setProductName(product_name);
378
-
379
- product.setProductMaker(product_maker);
380
-
381
- product.setProductPrice(product_price);
382
-
383
- product.setProductStock(product_stock);
384
-
385
- product.setProductSales(product_sales);
386
-
387
- product.setProductRemarks(product_remarks);
388
-
389
- ProductUpdateDao updatedao = new ProductUpdateDao();
390
-
391
- int id=Integer.parseInt(request.getParameter("product_ID"));
392
-
393
- try {
394
-
395
- updatedao.updata(product,id);
396
-
397
- } catch (SQLException e) {
398
-
399
- e.printStackTrace();
400
-
401
- }
402
-
403
- response.sendRedirect("/pda.k.oonuki/ProductListServlet");
404
-
405
- }
406
-
407
- }
408
-
409
-
410
-
411
- ```
412
-
413
-
414
-
415
- ```updateDao
416
-
417
- package dao;
418
-
419
-
420
-
421
- import java.sql.Connection;
422
-
423
- import java.sql.DriverManager;
424
-
425
- import java.sql.PreparedStatement;
426
-
427
- import java.sql.ResultSet;
428
-
429
- import java.sql.SQLException;
430
-
431
-
432
-
433
- import beans.Product;
434
-
435
-
436
-
437
- /**
438
-
439
- * DBの値を更新するためのクラスです。
440
-
441
- *
442
-
443
- * @author k.oonuki
444
-
445
- * @version 1.0.0
446
-
447
- */
448
-
449
- public class ProductUpdateDao {
450
-
451
- Connection conn = null;
452
-
453
- PreparedStatement ps = null;
454
-
455
- ResultSet rs = null;
456
-
457
- private static final String url = "jdbc:mysql://localhost/wbr_inventory_control";
458
-
459
- private static final String user = "testuser";
460
-
461
- private static final String pass = "testuser";
462
-
463
- private static final String sql = "update t_product set product_genre_code=?,product_name=?,product_maker=?,product_price=?,"
464
-
465
- + "product_stock=?,product_sales=?,product_remarks=? where product_ID=?";
466
-
467
-
468
-
469
- /**
470
-
471
- * DBの値を更新するためのメソッドです
472
-
473
- *
474
-
475
- * @param product dtoのbeansを表す変数です
476
-
477
- * @throws SQLException SQL実行時に起こりうる例外
478
-
479
- */
480
-
481
- public void updata(Product product, int id) throws SQLException {
482
-
483
- try {
484
-
485
- Class.forName("com.mysql.cj.jdbc.Driver");
486
-
487
- Connection conn = DriverManager.getConnection(url, user, pass);
488
-
489
- conn.setAutoCommit(false);
490
-
491
- PreparedStatement ps = conn.prepareStatement(sql);
492
-
493
- ps.setString(1, product.getProductGenreCode());
494
-
495
- ps.setString(2, product.getProductName());
496
-
497
- ps.setString(3, product.getProductMaker());
498
-
499
- ps.setInt(4, product.getProductPrice());
500
-
501
- ps.setInt(5, product.getProductStock());
502
-
503
- ps.setInt(6, product.getProductSales());
504
-
505
- ps.setString(7, product.getProductRemarks());
506
-
507
- ps.setInt(8,id);
508
-
509
- ps.executeUpdate();
510
-
511
- conn.commit();
512
-
513
- System.out.println(ps);
514
-
515
-
516
-
517
- } catch (SQLException e) {
518
-
519
- e.printStackTrace();
520
-
521
- } catch (ClassNotFoundException e) {
522
-
523
- e.printStackTrace();
524
-
525
- } finally {
526
-
527
- if (ps != null) {
528
-
529
- ps.close();
530
-
531
- }
532
-
533
- if (conn != null) {
534
-
535
- conn.close();
536
-
537
- }
538
-
539
- if(rs!= null) {
540
-
541
- rs.close();
542
-
543
- }
544
-
545
- }
546
-
547
- }
548
-
549
- }
550
-
551
-
552
-
553
- ```