데일리로그C:
article thumbnail
Published 2023. 3. 2. 17:26
230302_web2(8)-상품관리 JAVA/model2

1. DB table 만들기(상품등록)

CREATE TABLE item (
    it_uid int NOT NULL AUTO_INCREMENT,
    category1 varchar(10) DEFAULT NULL, 
    category2 varchar(10) DEFAULT NULL,
    mbup_id varchar(20) DEFAULT NULL, // 중간업체 id
    it_name varchar(20) DEFAULT NULL, // 업체명
    it_price1 int DEFAULT NULL,  // default 가격
    it_price2 int DEFAULT NULL, // 할인가격
    it_point int DEFAULT NULL, 
    it_qty int DEFAULT NULL,
    it_option varchar(255) DEFAULT NULL,
    it_use enum('Y','N') DEFAULT 'Y',  // 사용자에게 보여줄지 
    it_date varchar(20) DEFAULT NULL,  // 등록날짜
    it_type1 enum('Y','N') DEFAULT 'N',  //신상상품
    it_type2 enum('Y','N') DEFAULT 'N',  //베스트상품
    it_type3 enum('Y','N') DEFAULT 'N', // 추천상품
    it_type4 enum('Y','N') DEFAULT 'N', //할인상품
    it_type5 enum('Y','N') DEFAULT 'N',
    file1 varchar(20) DEFAULT '',
    file2 varchar(20) DEFAULT '',
    file3 varchar(20) DEFAULT '',
    file4 varchar(20) DEFAULT '',
    file5 varchar(20) DEFAULT '',
    PRIMARY KEY (`it_uid`)
);

 

일반사용자 mypage

중간업체 mypage  --> 어느정도 관리자 페이지만큼(업체 관련 상품만 볼수있게 --> 상품 등록, )

관리자 admin  --> 모든 상품 관련된 정보 다 볼수 있게

 


 

 

1.  admin > header.jsp

<a href="/admin/item/list">[상품관리]</a>

 

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

 

 

3.

item controller > List.java

package admin.item;

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/item/list")
public class List extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public List() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher dis = request.getRequestDispatcher("list.jsp");
		dis.forward(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

 


 

4. item controller > Write.java

package admin.item;

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.AdminItemDAO;


@WebServlet("/admin/item/write")
public class Write extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public Write() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		AdminItemDAO dao = new AdminItemDAO();
		
		dao.categoryList(); // 카테고리 대분류
		
		RequestDispatcher dis = request.getRequestDispatcher("write.jsp");
		dis.forward(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

 

5. item > wrtie.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 없다면 같은 페이지 write.java로 post 보내는거임 -->
<table width=600 border=1 align=center>
	<tr>
		<td>카테고리</td>
		<td>
        	<!-- onchange - ajax를 통해 CategoryBig.java로 post 로 보냄 -->
			<select name="category1" onchange="cate_ch(this.value)">
					<option value="">=대분류 선택=</option>
				<c:forEach var="list" items="${v}">
					<option value="${list.ca_id}">${list.ca_name}</option>
				</c:forEach>
			</select>
			<span id="id_result">
				<select name="category2">
					<option value="">=중분류 선택=</option>
				</select>
			</span>
		</td>  
	</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>

 

6. AdminItemDAO.java

package dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;

import model.Category;

public class AdminItemDAO {

	// 사용할 객체를 미리 선언
	Statement stmt;
	PreparedStatement pstmt;
	ResultSet rs;
	
	// DAO 실행하려면 연결해야함(전역객체)
	DAO d = new DAO();
		
	//카테고리 대분류
	public Vector<Category> categoryList() {
		d.getCon();
		
		Vector<Category> v = new Vector<Category>();
		try {
			String sql ="select * from category where length(ca_id)=2 and ca_use='Y' ";
			
			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);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return v;
	}
}

 

7. Write.java

Vector<Category> v = dao.categoryList(); // 카테고리 대분류
		
		request.setAttribute("v", v);

 

8. write.jsp  --> 상단에 추가

<script>
function cate_ch(ca_id) {
	$.ajax({
		url: "cate_big", //전송받을 페이지 경로
		type: "post", //데이터 읽어오는 방식
		dataType: "text", //데이터 방식
		data: "ca_id="+ca_id, //데이터 전달
		error:function(){ //실패일 경우
			alert("실패");
		},
		success:function(text){ //성공일 경우
			$("#id_result").html(text);
		}
	});
}


</script>

 

9. item > CategoryBig.java  --> ajax에서 post 보냄

package admin.item;

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/item/cate_big")
public class CategoryBig extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
   
    public CategoryBig() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
        String ca_id = request.getParameter("ca_id");
		
		RequestDispatcher dis = request.getRequestDispatcher("cate_big.jsp");
		dis.forward(request, response);
	}

}

 

 

10. AdminItemDAO.java

	// 카테고리 중분류
	public LinkedList<Category> categoryMiddle(String ca_id) {
		d.getCon();
		
		LinkedList<Category> v = new LinkedList<Category>();
		try {
			String sql ="select * from category where length(ca_id)=4 and left(ca_id,2)=? and ca_use='Y' "; // ca_id 4자리 중에 왼쪽 두자리가 부모(left)랑 일치한다면
			
			pstmt = d.con.prepareStatement(sql);
			
			pstmt.setString(1, ca_id);
			
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				Category c = new Category();
				
				c.setCa_id(rs.getNString("ca_id"));
				c.setCa_name(rs.getNString("ca_name"));
				c.setCa_use(rs.getNString("ca_use"));
				
				v.add(c);
				
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return v;
	}
}

 

11. CategoryBig.java

package admin.item;

import java.io.IOException;
import java.util.LinkedList;

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.AdminItemDAO;
import model.Category;


@WebServlet("/admin/item/cate_big")
public class CategoryBig extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
   
    public CategoryBig() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String ca_id = request.getParameter("ca_id");
		
		AdminItemDAO dao = new AdminItemDAO();
		
		LinkedList<Category> v = dao.categoryMiddle(ca_id);  // 중분류 값 가져오기
		
		request.setAttribute("v", v);
		
		RequestDispatcher dis = request.getRequestDispatcher("cate_big.jsp");
		dis.forward(request, response);
	}

}

 

 

12. cate_big.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!-- jquery 사용 -->
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>

<select name="category2">
		<option value="">=중분류 선택=</option>
	<c:forEach var="list" items="${v}">
		<option value="${list.ca_id}">${list.ca_name}</option>
	</c:forEach>
</select>

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

230303_web2(9)-메일, 채팅  (0) 2023.03.03
230303  (0) 2023.03.03
230302_web2(7)-분류관리  (0) 2023.03.02
230302_web2(6) - 아이디중복확인  (0) 2023.03.02
230302_JQuery  (0) 2023.03.02
profile

데일리로그C:

@망밍

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

profile on loading

Loading...