상품판매할 때 총개수 - 판매수량 처리할 때 사용
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 |