데일리로그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 하기

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

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

 

4. controller > CategoryList.java

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

<%@ 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

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

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

<%@ 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

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

// 목록
	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

response.sendRedirect("list");

 

12. CategoryList.java

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

<%@ 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

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 

// 수정
	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

response.sendRedirect("list");

 

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

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

 


[ 삭제 ]

17. list.jsp

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

 

18. CategoryDelete.java

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

// 삭제
	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

// 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:

@망밍

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

profile on loading

Loading...