package basic.exercise.interfaces;
public interface IUserInfoDao {
// C R U D
// public abstract 생략 가능
// TODO - 매개변수 수정 예정
public abstract void insertUserInfo(String name, int age, String nickeName );
public abstract void updateUserInfo();
public abstract void deleteUserInfo();
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;
}
@Override
public String toString() {
return id + ", " + userName + ", " + pw;
}
}
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(); // 전체 조회
}
IUserInfoDao 스펙을 구현한 클래스 - 구현 클래스 (UserInfoMySqlDaoImpl )
package basic.exercise.interfaces;
import basic.ch08.UserInfo;
public class UserInfoMySqlDaoImpl implements IUserInfoDao {
@Override
public void insertUserInfo(UserInfo info) {
// SQL : 질의어 - 배웠다면 -- MySQL 언어를 활용해서 구현
System.out.println("insert into user_tb valus(info.getUserName())");
}
@Override
public void updateUserInfo(UserInfo info) {
System.out.println("update 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;
import basic.ch08.UserInfo;
public class UserInfoOrcleDao 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 {
// main (메인 쓰래드 : 메인 작업자 )
public static void main(String[] args) {
// 사용자에게 정보를 입력하세요 --> Scanner 활용
String inputUserName = "홍길동";
String inputUserPw = "asd123";
// DTO : 데이터들을 받아서(취합해서, 가공) 전달하는 역할을 가지고 있는 인스턴스를 말한다.
UserInfo userInfo = new UserInfo(inputUserName, inputUserPw);
// 데이터를 받아서 IUserInfoDao를 구현한 구현 클래스 에게 전달하고자 한다.
// UserInfoMySqlDaoImpl, UserInfoOracleDaoImpl
//IUserInfoDao iUserInfoDao1 = new UserInfoMySqlDaoImpl();
IUserInfoDao iUserInfoDao1 = new UserInfoOracleDaoImpl();
iUserInfoDao1.insertUserInfo(userInfo);
iUserInfoDao1.updateUserInfo(userInfo);
iUserInfoDao1.deleteUserInfo(userInfo.getId());
iUserInfoDao1.selectUserInfo();
} // end of main
} // end of class
'Java' 카테고리의 다른 글
JDBC 설치 및 설정 - 3 (1) | 2024.11.12 |
---|---|
JDBC 구성 요소(아키텍처) - 2 (0) | 2024.11.11 |
콜백 메서드 구현 (0) | 2024.09.25 |
람다식(Lambda expression) (2) | 2024.09.13 |
13. 회원 가입(트랜잭션, 예외 처리, H2 테이블 생성) (0) | 2024.08.09 |