습관제작소

22-05-26 JAVA (JDBC - 회원 가입) 본문

Programing Language/JAVA STUDY

22-05-26 JAVA (JDBC - 회원 가입)

KUDO 2022. 5. 29. 17:08
  • 자바, 데이터 베이스 연동
  • View

-사용자에게 보이는 화면


public class View {

    public static void main(String[] args) {

        // JoinMember 클래스 안에 있는
        // insert() 메소드 호출!!

        Scanner sc = new Scanner(System.in);



        // 메뉴를 선택하세요
        // [1] 회원가입 [2]회원정보수정 [3]회원탈퇴 [4]로그인 [5]나가기
        // int menu = 스캐너를 통해서 정수 입력
        // menu가 1이면

        // ====회원가입====
        // ID를 입력하세요 >>
        // PW를 입력하세요 >>
        // 이름을 입력하세여 >>

        // 회원가입 성공 >> "회원가입 완료"
        // 회원가입 실패 >> "중복된 ID입니다"



        while(true) {
            System.out.println("메뉴를 선택하세요");
            System.out.print("[1] 회원가입 [2] 회원정보수정 [3] 회원탈퇴 [4]로그인 [5]나가기 >>");
            int munu = sc.nextInt();

            if(munu==1) {
                //회원가입 기능
                System.out.println("====회원가입====");
                System.out.print("ID를 입력하세요 >> ");
                String id = sc.next();
                System.out.print("PW를 입력하세요 >> ");
                String pw = sc.next();
                System.out.print("이름를 입력하세요 >> ");
                String name = sc.next();


                MemberDTO dto = new MemberDTO(id, pw, name);
                JoinMember dao = new JoinMember();
                int cnt = dao.insert(dto);
                if(cnt>0) {
                    System.out.println("회원가입 성공");
                }else {
                    System.out.println("ID가 중복되었습니다.");
                }









            }else if(munu==5){

                System.out.println("종료 되었습니다.");
                break;


            }


        }
  • DTO

public class MemberDTO {

    // DTO란?
    // data transfer object
    // VO(Value OBfect)와 같은 개념
    // 디자인 패턴 MVC(Model, view, Controller)에서
    // 사용되는 VO DTO라고 부른다.

    //field
    String id, pw, name;

    //생성자
    public MemberDTO(String id, String pw, String name) {
        super();
        this.id = id;
        this.pw = pw;
        this.name = name;
    }

    //getter & setter

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }

    public String getPw() {
        return pw;
    }

    public void setPw(String pw) {
        this.pw = pw;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }








}
  • DAO

-DB연결


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class MemberDAO {

    int cnt; // 변한 행의 개수를 저장하는 변수
    Connection conn; // DB 연결 객체
    PreparedStatement psmt; // SQL문 전달 객체

    public int update() {

        cnt = 0;

        // 1. 동적 로딩
        // 1-1. ojdb6.jar 파일 추가
        // OracleDriver 클래스 로딩
        try {
            connect();

            // 3. SQL문 실행
            String sql = "update member set pw = '4321' where id = 'cln9654'";
            psmt = conn.prepareStatement(sql);
            cnt = psmt.executeUpdate();

        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("DB 연결 실패");
        } finally {
            // 4. 닫기
            close();

        }

        return cnt;
    }

    public int delete() {
        connect();
        String sql = "delete from member where id = 'cln9654'";
        try {
            psmt = conn.prepareStatement(null);

            cnt = psmt.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            close();
        }



        return cnt;
    }





    private void connect() {

        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");

            // 2. DB 연결
            String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
            String db_id = "hr";
            String db_pw = "hr";

            conn = DriverManager.getConnection(url, db_id, db_pw);
            if (conn != null) {
                System.out.println("DB 연결 성공");
            }
        } catch (ClassNotFoundException e) {
            System.out.println("드라이버 로딩 실패");
        } catch (SQLException e) {
            System.out.println("DB 연결 실패");
        }
    }

    private void close() {
        try {

            if (psmt != null) {

                psmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {

            e.printStackTrace();
        }
    }




}
Comments