멋쟁이v의 개발일지

[JSP] DTO_DAO insert/update 처리 본문

0년차/JAVA

[JSP] DTO_DAO insert/update 처리

멋쟁이v 2023. 6. 18. 22:02
728x90
320x100

[목차]


01. DAO(Date Access Object)

💡
➡️ DAO는 데이터베이스의 data에 접근하기 위한 객체입니다.

➡️ 데이터베이스에 접근하기 위한 로직&비지니스 로직을 분리하기 위해 사용합니다.

02. DTO_DAO insert 처리

💡
1️⃣ DAO 클래스 생성 후 insert 쿼리 메서드를 생성합니다..

2️⃣ 오버로딩 개념을 사용해서 입력 2개와 1개를 받는 메서드 선언합니다.

3️⃣ 메서드 내부 처리 과정으로 JDBC 프로그램 7단계를 넣습니다.

4️⃣ JSP에서 DAO 객체 생성 후 메서드를 호출합니다.

5️⃣ 입력 자료들은 DTO로 처리 후 세팅하고 DAO에서 겟팅합니다.

6️⃣ 페이지를 리다이렉트 합니다.

  • [코드예제] Udao.java
    package kr.or.dao;
    
    import kr.or.driverdb.DriverDB;
    import kr.or.dto.User;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class Udao {
    		// 전역에 각각 데이터타입의 객체참조변수를 선언
        User u = null;
        Connection conn = null;
        PreparedStatement pstmt = null;
    
        // 2. insert 처리 메서드(매개변수 하나)
        public void mInsert(User u) throws SQLException, ClassNotFoundException {
            System.out.println("mInsert 메서드 Udao.java");
            // 1-2단계 드라이버 실행, DB연결
            DriverDB db = new DriverDB();
            conn = db.driverDbcon();
            System.out.println(conn + "<- conn Udao.java");
    
            // 3단계 쿼리 실행 준비
            pstmt = conn.prepareStatement("INSERT INTO tb_user values (?, ?, ?, ?, ?, ?, ?)");
            pstmt.setString(1, u.getU_id());
            pstmt.setString(2, u.getU_pw());
            pstmt.setString(3, u.getU_level());
            pstmt.setString(4, u.getU_name());
            pstmt.setString(5, u.getU_email());
            pstmt.setString(6, u.getU_phone());
            pstmt.setString(7, u.getU_addr());
            System.out.println(pstmt + "<- pstmt Udao.java");
    
            // 4단계 쿼리 실행
            pstmt.executeUpdate();
    
            // 5단계 쿼리 실행 결과 사용(생략)
    
            // 6단계 객체 종료
            pstmt.close();
    
            // 7단계 DB연결 종료
            conn.close();
        }
    
        // 1. insert 처리 매서드(매개변수 두개)
        public void mInsert(User u, Connection conn) throws SQLException, ClassNotFoundException {
            System.out.println("mInsert 메서드 Udao.java");
            // 1-2단계 드라이버 실행, DB연결
            DriverDB db = new DriverDB();
            conn = db.driverDbcon();
            System.out.println(conn + "<- conn Udao.java");
    
            // 3단계 쿼리 실행 준비
            pstmt = conn.prepareStatement("INSERT INTO tb_user values (?, ?, ?, ?, ?, ?, ?)");
            pstmt.setString(1, u.getU_id());
            pstmt.setString(2, u.getU_pw());
            pstmt.setString(3, u.getU_level());
            pstmt.setString(4, u.getU_name());
            pstmt.setString(5, u.getU_email());
            pstmt.setString(6, u.getU_phone());
            pstmt.setString(7, u.getU_addr());
            System.out.println(pstmt + "<- pstmt Udao.java");
    
            // 4단계 쿼리 실행
            pstmt.executeUpdate();
    
            // 5단계 쿼리 실행 결과 사용(생략)
    
            // 6단계 객체 종료
            pstmt.close();
    
            // 7단계 DB연결 종료
            conn.close();
        }
    }

  • [코드예제] user_insert_action.jsp
    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <%@ page import="kr.or.dao.Udao" %>
    
    <%	request.setCharacterEncoding("euc-kr"); %> // post 한글처리
    
    // java bean 액션태그(DTO)
    <jsp:useBean id="u" class="kr.or.dto.User"/>
    <jsp:setProperty name="u" property="*"/>
    
    <%
    	// Udao 객체 생성 후 메서드 호출
    	Udao udao = new Udao();
    	udao.mInsert(u);
    
    	// 실행 후 페이지 리다이렉트
    	response.sendRedirect(request.getContextPath()+"/usersearch/user_search_list.jsp");
    %>

03. DTO_DAO update 처리

💡
1️⃣ DAO 클래스 생성 후 update 쿼리 메서드를 생성합니다..

2️⃣ 메서드 내부 처리 과정으로 JDBC 프로그램 7단계를 넣습니다.

3️⃣ JSP에서 DAO 객체 생성 후 메서드를 호출합니다.

4️⃣ 입력 자료들은 DTO로 처리 후 세팅하고 DAO에서 겟팅합니다.

5️⃣ 페이지를 리다이렉트 합니다.

  • [코드예제] Udao.java
    package kr.or.dao;
    
    import kr.or.driverdb.DriverDB;
    import kr.or.dto.User;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class Udao {
    		// 전역에 각각 데이터타입의 객체참조변수를 선언
        User u = null;
        Connection conn = null;
        PreparedStatement pstmt = null;
    
        // 3. update 처리 메서드
        public void uUpdate(User u) throws SQLException, ClassNotFoundException {
            System.out.println("uUpdate 메서드 Udao.java");
    
            // 1-2단계 드라이버 실행, DB연결
            DriverDB db = new DriverDB();
            conn = db.driverDbcon();
            System.out.println(conn + "<- conn Udao.java");
    
            // 3단계 쿼리 실행 준비
            pstmt = conn.prepareStatement("UPDATE tb_user set u_pw=?, u_level=?, u_name=?, u_email=?, u_phone=?, u_addr=? where u_id=?");
            pstmt.setString(1, u.getU_pw());
            pstmt.setString(2, u.getU_level());
            pstmt.setString(3, u.getU_name());
            pstmt.setString(4, u.getU_email());
            pstmt.setString(5, u.getU_phone());
            pstmt.setString(6, u.getU_addr());
            pstmt.setString(7, u.getU_id());
            System.out.println(pstmt);
    
            // 4단계 쿼리 실행
            pstmt.executeUpdate();
    
            // 5단계 쿼리 실행 결과 사용(생략)
    
            // 6단계 객체 종료
            pstmt.close();
    
            // 7단계 DB연결 종료
            conn.close();
        }
    }

  • [코드예제] user_update_action.jsp
    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <%@ page import="kr.or.dao.Udao" %>
    
    <% request.setCharacterEncoding("euc-kr"); %> // post 한글처리
    
    // java Bean 액션태그 (DTO)
    <jsp:useBean id="u" class="kr.or.dto.User"/>
    <jsp:setProperty name="u" property="*"/>
    
    <%
    	// Udao 객체 생성 후 메서드 실행
    	Udao udao = new Udao();
    	udao.uUpdate(u);
    
    	// user_search_list.jsp로 리다이렉트
    	response.sendRedirect(request.getContextPath() + "/usersearch/user_search_list.jsp");
    %>


tag : #java #jsp #DB #DTO #DAO #insert #update #쿼리 #객체 #화면처리


Uploaded by N2T

728x90
320x100
Comments