본문 바로가기

JAVA/Java2021-2

인터페이스를 활용한 다형성 구현(dao 구현하기)

DAO : Data Access Object(데이터베이스에 접근하는 객체)

위의 예를 보면 똑같은 인터페이스를 이용하여 사용하지만 DB에 따라서 OracleDao, MysqlDao, MSsqlDao를 사용할 수 있다.

package Basic_Grammar.chap3_OOP.ch09_interface_polymorphism.web.userInfo;

import Basic_Grammar.chap3_OOP.ch09_interface_polymorphism.domain.userInfo.UserInfo;
import Basic_Grammar.chap3_OOP.ch09_interface_polymorphism.domain.userInfo.dao.UserInfoDao;
import Basic_Grammar.chap3_OOP.ch09_interface_polymorphism.domain.userInfo.dao.mysql.UserInfoMysqlDao;
import Basic_Grammar.chap3_OOP.ch09_interface_polymorphism.domain.userInfo.dao.oracle.UserInfoOracleDao;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class UserInfoClient {
    public static void main(String[] args) throws IOException {
        FileInputStream fileInputStream=new FileInputStream("db.properties");
        Properties props=new Properties();
        props.load(fileInputStream);

        String dbtype=props.getProperty("DBTYPE");
        UserInfoDao userInfoDao=null;
        if (dbtype.equals("ORACLE")){
            userInfoDao=new UserInfoOracleDao();
        }else if(dbtype.equals("MYSQL")){
            userInfoDao=new UserInfoMysqlDao();
        }
        userInfoDao.insertUserInfo(new UserInfo("사람아이디","사람비번","사람이름"));
        userInfoDao.updateUserInfo(new UserInfo("사람아이디","사람비번","사람이름"));
        userInfoDao.deleteUserInfo(new UserInfo("사람아이디","사람비번","사람이름"));
        
    }
}

또 다른 예시)