인터페이스 활용
package basic.exercise.interfaces;
public interface IUserInfoDao {
//C R U D
//public abstract 생략 가능
//TODO - 매개의 변수 수정 예정
public abstract void insertUserInfo(UserInfo info);
//단 수정이 되면 안되는 것은 제외한다...
public abstract void updateUserInfo(UserInfo info);
public abstract void deleteUserInfo(int id);
public abstract void selectUserInfo(); //전체 조회
}
package basic.exercise.interfaces;
public class UserInfo {
public static int SERIAL_NUM = 0;
private int id;
private String userName;
private String pw;
public UserInfo(String userName, String pw) {
this.userName = userName;
this.pw = pw;
}
public int getId() {
return id;
}
public String getUserName() {
return userName;
}
public String getPw() {
return pw;
}
public String toString() {
return id + "," + userName + "," +pw;
}
}
IUserInfoDao 스펙을 구현한 클래스 - 구현 클래스 (UserInfoMySqlDaoImpl )
package basic.exercise.interfaces;
public class UserInfoMySqlDaolmpl implements IUserInfoDao {
@Override
public void insertUserInfo(UserInfo info) {
// SQL : 질의어 - 배웠다면 --MySQL 언어를 활용해서 구현
System.out.println("insert into user valus(info.getUserName())");
}
@Override
public void updateUserInfo(UserInfo info) {
System.out.println("updat set user_tb name = info.getUserName()");
}
@Override
public void deleteUserInfo(int id) {
System.out.println("delete from user_tb where id = info.getId()");
}
@Override
public void selectUserInfo() {
System.out.println("select * from user_tb");
}
}
package basic.exercise.interfaces;
public class UserInfoOracleImpl implements IUserInfoDao {
@Override
public void insertUserInfo(UserInfo info) {
System.out.println("오라클 DB 에 유저 생성");
}
@Override
public void updateUserInfo(UserInfo info) {
System.out.println("오라클 DB에 유저 정보 수정");
}
@Override
public void deleteUserInfo(int id) {
System.out.println("오라클 DB에 유저 정보 삭제");
}
@Override
public void selectUserInfo() {
System.out.println("오라클 DB에 유저 정보 전체 조회");
}
}
package basic.exercise.interfaces;
public class UserInfoClient {
public static void main(String[] args) {
//사용자에게 정보를 입력하세요 -->Saccner 활용
String inputUserName = "홍길동";
String inputuserPw = "asd123";
//DTO : 데이터들을 받아서 전달하는 역할을 가지고 있는 인스턴스를 말한다.
UserInfo info1 = new UserInfo(inputUserName, inputuserPw);
//데이터를 받아서 IUserInfoDao 를 구현한 구현 클래스에게 전달하고자 한다.
//UserInfoMySqlDaolmpl, UserInfoOracleImpl
//IUserInfoDao iUserInfoDao1 = new UserInfoMySqlDaolmpl();
IUserInfoDao iUserInfoDao1 = new UserInfoOracleImpl();
iUserInfoDao1.insertUserInfo(null);
iUserInfoDao1.updateUserInfo(null);
iUserInfoDao1.deleteUserInfo(0);;
iUserInfoDao1.selectUserInfo();;
}//end of main
}//end of class