본문으로 바로가기

인터페이스 활용

category Java 2024. 10. 2. 00:00
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