diff --git a/src/main/java/example/controller/ComputerServlet.java b/src/main/java/example/controller/ComputerServlet.java index 422d9a4..d86dbc2 100644 --- a/src/main/java/example/controller/ComputerServlet.java +++ b/src/main/java/example/controller/ComputerServlet.java @@ -13,7 +13,7 @@ import java.io.IOException; import java.sql.SQLException; import java.util.List; -@WebServlet(urlPatterns = {"/computerList","/deleteComputer","/addComputer"}) +@WebServlet(urlPatterns = {"/computerList","/deleteComputer","/addComputer","/editComputer"}) public class ComputerServlet extends HttpServlet { IComputerService computerService = new ComputerServiceImpl(); @@ -35,9 +35,19 @@ public class ComputerServlet extends HttpServlet { case "/addComputer": addComputer(req, resp); break; + case "/editComputer": + editComputer(req, resp); + break; } } + private void editComputer(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String id = req.getParameter("id"); + Computer computer = computerService.getComputer(id); + req.setAttribute("computer", computer); + req.getRequestDispatcher("editComputer.jsp").forward(req, resp); + } + private void addComputer(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getRequestDispatcher("addComputer.jsp").forward(req, resp); } @@ -60,6 +70,31 @@ public class ComputerServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String path = req.getServletPath(); + switch (path) { + case "/addComputer": + savaComputer(req, resp); + break; + case "/editComputer": + UpdatComputer(req, resp); + break; + } + } + + private void UpdatComputer(HttpServletRequest req, HttpServletResponse resp) { + String id = req.getParameter("id"); + String name = req.getParameter("name"); + String price = req.getParameter("price"); + String stock = req.getParameter("stock"); + computerService.updateComputer(id,name,Double.parseDouble(price),Integer.parseInt(stock)); + try { + resp.sendRedirect("/computerList"); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + void savaComputer(HttpServletRequest req, HttpServletResponse resp) throws IOException { String name = req.getParameter("name"); String price = req.getParameter("price"); String stock = req.getParameter("stock"); diff --git a/src/main/java/example/dao/ComputerDao.java b/src/main/java/example/dao/ComputerDao.java index d1c34fd..75dad69 100644 --- a/src/main/java/example/dao/ComputerDao.java +++ b/src/main/java/example/dao/ComputerDao.java @@ -3,6 +3,7 @@ package example.dao; import example.model.Computer; import example.utils.DBUtils; import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import java.sql.SQLException; @@ -46,9 +47,13 @@ public class ComputerDao { } - - - - - + public Computer getComputerById(int i) { + String sql = "select * from computer where id=?"; + try { + return queryRunner.query(sql, new BeanHandler<>(Computer.class), i); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/example/service/IComputerService.java b/src/main/java/example/service/IComputerService.java index 60f2a2c..113ac54 100644 --- a/src/main/java/example/service/IComputerService.java +++ b/src/main/java/example/service/IComputerService.java @@ -12,4 +12,8 @@ public interface IComputerService { List listComputer() throws SQLException; void deleteComputer(String id); + + Computer getComputer(String id); + + void updateComputer(String id, String name, double v, int i); } diff --git a/src/main/java/example/service/impl/ComputerServiceImpl.java b/src/main/java/example/service/impl/ComputerServiceImpl.java index 352ee54..d6aba61 100644 --- a/src/main/java/example/service/impl/ComputerServiceImpl.java +++ b/src/main/java/example/service/impl/ComputerServiceImpl.java @@ -26,4 +26,14 @@ public class ComputerServiceImpl implements IComputerService { public void deleteComputer(String id) { computerDao.deleteComputer(Integer.parseInt(id)); } + + @Override + public Computer getComputer(String id) { + return computerDao.getComputerById(Integer.parseInt(id)); + } + + @Override + public void updateComputer(String id, String name, double v, int i) { + computerDao.updateComputer(name, v, i, Integer.parseInt(id)); + } } diff --git a/src/main/webapp/computerList.jsp b/src/main/webapp/computerList.jsp index 5db0edd..a381f5c 100644 --- a/src/main/webapp/computerList.jsp +++ b/src/main/webapp/computerList.jsp @@ -27,7 +27,7 @@ ${computer.price} ${computer.stock} - Edit | + Edit | Delete diff --git a/src/main/webapp/editComputer.jsp b/src/main/webapp/editComputer.jsp new file mode 100644 index 0000000..f78f479 --- /dev/null +++ b/src/main/webapp/editComputer.jsp @@ -0,0 +1,25 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" %> + + + + + + + Update Computer + + +

Update Computer

+
+ +
+

+
+

+
+

+ +
+
+ Back to List + +