본문 바로가기
Code/Console

[Java Code] 인터페이스 - DAO 구현

by 스응 2023. 2. 13.
728x90
728x90

코드

// DTO : Data Transfer Object
public class UserInfo {

    public static int SERIAL_NUMBER = 0;
    private int id;
    private String userName;
    private String pw;

    public UserInfo(String name, String pw) {
        SERIAL_NUMBER++;
        this.id = SERIAL_NUMBER;
        this.userName = name;
        this.pw = pw;
    }

    public int getId() {
        return id;
    }

    public String getUserName() {
        return userName;
    }

    public String getPw() {
        return pw;
    }

    public void showInfo() {
        System.out.println("사용자 정보 확인");
        System.out.println("userName : " + userName);
        System.out.println("pw : " + pw);
    }

}

 

public interface IUserInfoDao {

    void insertUserInfo(UserInfo userInfo);
    void updateUserInfo(UserInfo userInfo);
    void deleteUserInfo(String userName);
    void selectUserInfo(String userName);

}

 

public class UserInfoMssqlDao implements IUserInfoDao {

    @Override
    public void insertUserInfo(UserInfo userInfo) {
        System.out.println("MSSQL : 저장 기능 호출");
        System.out.println("이름 : " + userInfo.getUserName());
        System.out.println("비밀번호 : " + userInfo.getPw());
    }

    @Override
    public void updateUserInfo(UserInfo userInfo) {
        System.out.println("MSSQL : 수정 기능 호출");
        System.out.println("이름 : " + userInfo.getUserName());
        System.out.println("비밀번호 : " + userInfo.getPw());
    }

    @Override
    public void deleteUserInfo(String userName) {
        System.out.println("MSSQL : 삭제 기능 호출");
        System.out.println("이름 : " + userName);
    }

    @Override
    public void selectUserInfo(String userName) {
        System.out.println("MSSQL : 조회 기능 호출");
        System.out.println("이름 : " + userName);
    }

}

 

import java.util.Scanner;

public class UserInfoClient2 {

    static String dbName = "Oracle";

    public static void main(String[] args) {

        // UserInfoOracleDao 만들어주세요
        // 스캐너를 통해 사용자 이름, 비번 입력받기

        Scanner scanner = new Scanner(System.in);
        System.out.println("사용자 이름을 입력해주세요.");
        String inputUserName = scanner.nextLine();
        System.out.println("사용자 비밀번호를 입력해주세요.");
        String inputUserPw = scanner.nextLine();

        // 흐름 만들기
        // 1. 저장 기능, 2. 수정 기능
        // dbName을 변경해가며 코드 동작 확인

        UserInfo userInfo = new UserInfo(inputUserName, inputUserPw);

        IUserInfoDao dao;
        if (UserInfoClient2.dbName.equals("Oracle")) {
            dao = new UserInfoOracleDao();

        } else if (UserInfoClient2.dbName.equals("MYSQL")) {
            dao = new UserInfoMysqlDao();

        } else if (UserInfoClient2.dbName.equals("MSSQL")) {
            dao = new UserInfoMssqlDao();

        }
        dao.insertUserInfo(userInfo);
        dao.updateUserInfo(userInfo);
    }
}
320x100
반응형

댓글