DB 연동해서 MVC로 웹 출력하기 (2. 등록)

김민아·2023년 5월 26일
0

MVC

목록 보기
3/3
post-thumbnail

저번 시간에 했던 MVC에 추가로 등록을 해볼 것이다!!
전 게시물에 추가하는 것이니 참고바람.

.
.
index.jsp 파일은 전 게시물에서 썼던 걸로 사용하겠다.

🎈 이번에도 가장 쉬운 DTO를 먼저 만들어준다.


public class RegDTO {

	String saleno;
	String pcode;
	String saledate;
	String scode;
	String amount;
	
    
	public String getSaleno() {
		return saleno;
	}
	public void setSaleno(String saleno) {
		this.saleno = saleno;
	}
	public String getPcode() {
		return pcode;
	}
	public void setPcode(String pcode) {
		this.pcode = pcode;
	}
	public String getSaledate() {
		return saledate;
	}
	public void setSaledate(String saledate) {
		this.saledate = saledate;
	}
	public String getScode() {
		return scode;
	}
	public void setScode(String scode) {
		this.scode = scode;
	}
	public String getAmount() {
		return amount;
	}
	public void setAmount(String amount) {
		this.amount = amount;
	}
	public RegDTO(String saleno, String pcode, String saledate, String scode,
			String amount) {
		super();
		this.saleno = saleno;
		this.pcode = pcode;
		this.saledate = saledate;
		this.scode = scode;
		this.amount = amount;
	}
	@Override
	public String toString() {
		return "RegDTO [saleno=" + saleno + ", pcode=" + pcode + ", saledate="
				+ saledate + ", scode=" + scode + ", amount=" + amount + "]";
	}
	public RegDTO() {
		super();
		// TODO Auto-generated constructor stub
	}
}

저번과 똑같이 변수 만들어주고 getter와 setter 메서드를 정의해준다.
.
.
.

🎁 기존 DAO에 RegDTO 객체를 매개변수로 받아 reg() 메서드를 정의해준다.


public void reg(RegDTO regdto){
		
		dbcon();
		
		String sql="insert into tbl_salelist_01 values(?,?,?,?,?)";
		
		try {
			PreparedStatement pst = con.prepareStatement(sql);
			
			pst.setString(1, regdto.getSaleno());
			pst.setString(2, regdto.getPcode());
			pst.setString(3, regdto.getSaledate());
			pst.setString(4, regdto.getScode());
			pst.setString(5, regdto.getAmount());
			
			pst.executeUpdate();
			pst.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
    

dbcon()으로 데이터베이스 연결해주고,
setString() 메서드를 통해 RegDTO 객체의 값을 쿼리문에 바인딩한다.
그 후, executeUpdate() 메서드를 호출해서 쿼리를 실행한다.

.
.
.

🍎 다음은 controller에 RegServlet 만들기!


@WebServlet("/reg")
public class RegServlet extends HttpServlet{

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

		DAO dao = new DAO();
		request.getRequestDispatcher("WEB-INF/views/Reg.jsp").forward(request, response);
	}
	
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		 
		// 5가지 정보 빼오기  =>   하나의   dto  =객체만들기				
		
		String saleno  = request.getParameter("saleno");
		System.out.println( saleno );
		
		String pcode = request.getParameter("pcode");
		System.out.println(pcode);
		
		String saledate = request.getParameter("saledate");
		System.out.println(saledate);
		
		String scode = request.getParameter("scode");
		System.out.println(scode);
		
		String amount = request.getParameter("amount");
		System.out.println(amount);
		
		
		RegDTO regdto  = new RegDTO( saleno, pcode, saledate, scode, amount);
		
		DAO dao = new DAO();
		 dao.reg(regdto);		
		
		 // 어디로 넘어갈것인지
		response.sendRedirect("/coffee_A002/select");
		
	}
}

HttpServlet을 상속하고, doGet()과 doPost() 메서드를 오버라이딩하여 GET 및 POST 요청을 처리한다.
doPost() 메서드는 POST 요청이 발생했을 때 호출되며, 클라이언트로부터 전송된 5가지 정보(saleno, pcode, saledate, scode, amount)를 추출하여 변수에 저장한다. 그 후, 이 정보를 사용하여 RegDTO 객체를 생성한다.
그 다음, DAO 객체를 생성하고 reg() 메서드를 호출하여 RegDTO 객체를 데이터베이스에 등록한다.

.
.
.

😊 마지막으로 Reg.jsp 파일 만들기!


<section>
<h3>판매등록</h3>

<form name="frm" action="/coffee_A002/reg" method="post">
<table>

<tr>
<td>비번호</td>
<td><input type="text"  name="saleno"></td>
</tr>
<tr>
<td>상품코드</td>
<td><input type="text"  name="pcode"></td>
</tr>
<tr>
<td>판매날짜</td>
<td><input type="text" name="saledate"></td>
</tr>
<tr>
<td>매장코드</td>
<td><input type="text" name="scode"></td>
</tr>
<tr>
<td>판매수량</td>
<td><input type="text" name="amount"></td>
</tr>

<tr class="btn">
<td colspan="2">
<input type="submit" value="등록">
<input type="button" value="다시쓰기"></td>
</tr>
</table>
</form>
</section>


폼은 사용자로부터 판매 정보를 입력받아 POST 요청을 전송한다.
등록과 다시쓰기 버튼을 만들어준다.
사용자가 정보를 입력한 후 "등록" 버튼을 클릭하면 입력된 데이터가 /coffee_A002/reg로 전송되고, 서버 측에서 해당 데이터를 처리할 수 있게 된다.

.
.
.
.

❗결과화면❗

이렇게 등록화면이 나온다.
모두 입력하고 등록버튼을 누르면 조회쿼리가 있는 판매현황 창으로 넘어간다.

.
.

.
.

.

오늘은 MVC로 등록화면을 만들어봤는데 역시 jsp로만 하는 것보다 훨씬 오래걸린다.

그래서 다음 시간엔 위와 똑같은걸 jsp로 디비연동해서 웹 출력하기를 할 것이다..! 👍👍

profile
고무 오리 디버깅 기록 일기

0개의 댓글