데일리로그C:
article thumbnail
Published 2023. 3. 2. 15:13
230302_web2(7)-분류관리 JAVA/model2

상품판매할 때 총개수 - 판매수량 처리할 때 사용

ca_use : 사용자에게 보여줄지 말지

delete --> 무조건 update 처리

 

1. DB table 만들기

CREATE TABLE category (
     ca_id varchar(10) NOT NULL,
     ca_name varchar(255) NOT NULL,
     ca_use enum('Y','N') default 'Y',
     PRIMARY KEY (ca_id)
) ;

 

2. model > Category   --> getter, setter, toString 하기

<bash />
package model; public class Category { // 변수명은 칼럼명과 일치시키기! (보안 높이기위해 접근제어자 private 사용) private String ca_id; private String ca_name; private String ca_use; public String getCa_id() { return ca_id; } public void setCa_id(String ca_id) { this.ca_id = ca_id; } public String getCa_name() { return ca_name; } public void setCa_name(String ca_name) { this.ca_name = ca_name; } public String getCa_use() { return ca_use; } public void setCa_use(String ca_use) { this.ca_use = ca_use; } @Override public String toString() { return "Category [ca_id=" + ca_id + ", ca_name=" + ca_name + ", ca_use=" + ca_use + "]"; } }

 

 

3. admin > header.jsp

<bash />
<a href="/admin/category/list">[분류관리]</a>

 

4. controller > CategoryList.java

<bash />
package admin.controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/admin/category/list") public class CategoryList extends HttpServlet { private static final long serialVersionUID = 1L; public CategoryList() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //list는 get방식 request.setCharacterEncoding("utf-8"); RequestDispatcher dis = request.getRequestDispatcher("list.jsp"); dis.forward(request, response); } }

 

5. admin > category > list.jsp

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <center> <table width=600 border=0 align=center> <tr> <td colspan=2 align=center class="td_title"><b>분류관리</b></td> </tr> <tr> <td>Total : ${count}</td> <td align=right><a href="write">[분류추가]</a></td> </tr> </table> <table width=600 border=1 align=center> <tr> <td>No</td> <td>코드</td> <td>이름</td> <td>사용여부</td> <td>MODE</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> </center> <%@ include file="/admin/include/footer.jsp" %>

 

6. controller > CategoryWrite.java

<bash />
package admin.controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dao.AdminCategoryDAO; import model.Category; @WebServlet("/admin/category/write") public class CategoryWrite extends HttpServlet { private static final long serialVersionUID = 1L; public CategoryWrite() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dis = request.getRequestDispatcher("write.jsp"); dis.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); //form으로 세개변수 넘어옴 Category c = new Category();// model 패키지 import 하기 // 객체 c에 받아온 변수 담기 c.setCa_id(request.getParameter("ca_id")); c.setCa_name(request.getParameter("ca_name")); c.setCa_use(request.getParameter("ca_use")); AdminCategoryDAO dao = new AdminCategoryDAO(); dao.insertCategory(c); response.sendRedirect("list"); } }

 

7. AdminCategoryDAO.java

<bash />
package dao; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import model.Category; public class AdminCategoryDAO { // 사용할 객체를 미리 선언 Statement stmt; PreparedStatement pstmt; ResultSet rs; // DAO 실행하려면 연결해야함(전역객체) DAO d = new DAO(); // 분류추가 public void insertCategory(Category c) { d.getCon(); try { String sql = "insert into category values(?,?,?)"; pstmt = d.con.prepareStatement(sql); pstmt.setString(1, c.getCa_id()); pstmt.setString(2, c.getCa_name()); pstmt.setString(3, c.getCa_use()); pstmt.executeUpdate(); pstmt.close(); d.con.close(); } catch (Exception e) { e.printStackTrace(); } } }

 

<분류코드 예시>
* 강아지 10 (대분류)   A
      ㄴ> 암컷 1010 (중분류)  AA - AZ
      ㄴ> 수컷 1020 (중분류)  
  고양이 20 (대분류)  B
      ㄴ> 암컷 2010 (중분류) BA - BZ
      ㄴ> 수컷 2020 (중분류)

 


[ 분류추가 ]

8. write.jsp

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <center> <table width=600 border=0 align=center> <tr> <td colspan=2 align=center class="td_title"><b>분류관리</b></td> </tr> </table> <form method="post"> <!-- action 없다면 같은 페이지 --> <table width=600 border=1 align=center> <tr> <td>분류코드</td> <td><input id="ca_id" name="ca_id"></td> <!-- script에선 id 필요 // name은 변수명 --> </tr> <tr> <td>분류명</td> <td><input id="ca_name" name="ca_name"></td> </tr> <tr> <td>사용여부</td> <td> <input type="radio" id="ca_use" name="ca_use" value="Y" checked>Y <input type="radio" id="ca_use" name="ca_use" value="N">N </td> </tr> <tr> <td></td> <td><button>추가</button></td> </tr> </table> </form> </center> <%@ include file="/admin/include/footer.jsp" %>ml>

 

 

9. controller > CategoryWrite.java

<bash />
package admin.controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dao.AdminCategoryDAO; import model.Category; @WebServlet("/admin/category/write") public class CategoryWrite extends HttpServlet { private static final long serialVersionUID = 1L; public CategoryWrite() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dis = request.getRequestDispatcher("write.jsp"); dis.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); //form으로 세개변수 넘어옴 Category c = new Category();// model 패키지 import 하기 // 객체 c에 받아온 변수 담기 c.setCa_id(request.getParameter("ca_id")); c.setCa_name(request.getParameter("ca_name")); c.setCa_use(request.getParameter("ca_use")); AdminCategoryDAO dao = new AdminCategoryDAO(); dao.insertCategory(c); } }

 

10. AdminCategoryDAO.java

<bash />
// 목록 public ArrayList<Category> listAll() { d.getCon(); ArrayList<Category> v = new ArrayList<Category>(); try { String sql=" select * from category "; pstmt = d.con.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()) { Category c = new Category(); c.setCa_id(rs.getString("ca_id")); c.setCa_name(rs.getString("ca_name")); c.setCa_use(rs.getString("ca_use")); v.add(c); // v 객체에 c객체 값을 추가하겠다 } rs.close(); pstmt.close(); d.con.close(); } catch (Exception e) { e.printStackTrace(); } return v;

 

11. controller > CategoryWrite.java

<bash />
response.sendRedirect("list");

 

12. CategoryList.java

<bash />
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //list는 get방식 request.setCharacterEncoding("utf-8"); AdminCategoryDAO dao = new AdminCategoryDAO(); ArrayList<Category> v = dao.listAll(); request.setAttribute("v", v); // v 객체에 v 값들을 담겠다 RequestDispatcher dis = request.getRequestDispatcher("list.jsp"); dis.forward(request, response); }

 

13. list.jsp

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/admin/include/header.jsp" %> <center> <table width=600 border=0 align=center> <tr> <td colspan=2 align=center class="td_title"><b>분류관리</b></td> </tr> <tr> <td>Total : ${count}</td> <td align=right><a href="write">[분류추가]</a></td> </tr> </table> <table width=600 border=1 align=center> <tr> <td>분류코드</td> <td>분류명</td> <td>사용여부</td> <td>MODE</td> </tr> <c:forEach var="list" items="${v}"> <form action="modify" method="post"> <tr> <td><input id="ca_id" name="ca_id" value="${list.ca_id}"></td> <td><input id="ca_name" name="ca_name" value="${list.ca_name}"></td> <td> <input type="radio" id="ca_use" name="ca_use" value="Y" <c:if test="${list.ca_use =='Y'}">checked</c:if>>Y <input type="radio" id="ca_use" name="ca_use" value="N" <c:if test="${list.ca_use =='N'}">checked</c:if>>N </td> <td> <button>[수정]</button> <a href="">[삭제]</a> </td> </tr> </form> </c:forEach> </table> </center> <%@ include file="/admin/include/footer.jsp" %>

 


[ 수정 ]

14. CategoryModify.java

<bash />
package admin.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dao.AdminCategoryDAO; import model.Category; @WebServlet("/admin/category/modify") public class CategoryModify extends HttpServlet { private static final long serialVersionUID = 1L; public CategoryModify() { super(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); Category c= new Category(); // 객체 c에 받아온 변수 담기 c.setCa_id(request.getParameter("ca_id")); c.setCa_name(request.getParameter("ca_name")); c.setCa_use(request.getParameter("ca_use")); //System.out.println(c.toString()); //console 확인 AdminCategoryDAO dao = new AdminCategoryDAO(); dao.oneUpdate(c); } }

 

15. DAO 

<bash />
// 수정 public void oneUpdate(Category c) { d.getCon(); try { String sql ="update category set ca_name=?, ca_use=? where ca_id=?"; pstmt = d.con.prepareStatement(sql); pstmt.setString(1, c.getCa_name()); pstmt.setString(2, c.getCa_use()); pstmt.setString(3, c.getCa_id()); pstmt.executeUpdate(); pstmt.close(); d.con.close(); } catch (Exception e) { e.printStackTrace(); } }

 

15. CategoryModify.java

<bash />
response.sendRedirect("list");

 

16. list.jsp  --> 분류코드 변경 못하게 readonly 넣기

<bash />
<td><input id="ca_id" name="ca_id" value="${list.ca_id}" readonly></td>

 


[ 삭제 ]

17. list.jsp

<bash />
<a href="delete?ca_id=${list.ca_id}">[삭제]</a>

 

18. CategoryDelete.java

<bash />
package admin.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dao.AdminCategoryDAO; /** * Servlet implementation class CategoryDelete */ @WebServlet("/admin/category/delete") public class CategoryDelete extends HttpServlet { private static final long serialVersionUID = 1L; public CategoryDelete() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = request.getParameter("ca_id"); AdminCategoryDAO dao = new AdminCategoryDAO(); dao.oneDelete(id); } }

 

 

19 AdminCategoryDAO.java

<bash />
// 삭제 public void oneDelete(String id) { d.getCon(); try { String sql = "delete from category where ca_id=?"; pstmt = d.con.prepareStatement(sql); pstmt.setString(1, id); pstmt.executeUpdate(); pstmt.close(); d.con.close(); } catch (Exception e) { e.printStackTrace(); } }

 

20. CategoryDelete.java

<bash />
// alert 띄우고 보내도됨 response.sendRedirect("list");

 

 

'JAVA > model2' 카테고리의 다른 글

230303  (0) 2023.03.03
230302_web2(8)-상품관리  (0) 2023.03.02
230302_web2(6) - 아이디중복확인  (0) 2023.03.02
230302_JQuery  (0) 2023.03.02
230228_web2(5)-첨부파일  (0) 2023.02.28
profile

데일리로그C:

@망밍

포스팅이 도움됐다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!