package realization;
public class JdbcMysql implements Jdbc {
@Override
public void insert() {
System.out.println("[mysql]학생정보를 삽입하는 메소드");
}
@Override
public void update() {
System.out.println("[mysql]학생정보를 변경하는 메소드");
}
@Override
public void delete() {
System.out.println("[mysql]학생정보를 삭제하는 메소드");
}
@Override
public void select() {
System.out.println("[mysql]학생정보를 검색하는 메소드");
}
}
package realization;
public class JdbcApp {
public static void main(String[] args) {
/*
JdbcMysql mysql=new JdbcMysql();
mysql.insert();
mysql.update();
mysql.delete();
mysql.select();
*/
/*
//시스템 변경에 의해 클래스 교체시 메소드 호출 명령 변경
// => 객체간의 결합도가 높기 때문에 유지보수의 효율성 감소
JdbcOracle oracle=new JdbcOracle();
oracle.add();
oracle.modify();
oracle.remove();
oracle.search();
*/
//객체간의 결합도를 낮추기 위해 참조변수는 인터페이스를 이용하여 선언
//Jdbc jdbc=new JdbcMysql();
//시스템 변경에 의해 클래스 교체시 메소드 호출 명령 미변경
// => 객체간의 결합도를 낮춰 유지보수의 효율성 증가
Jdbc jdbc=new JdbcOracle();
//참조변수로 인터페이스의 추상메소드를 호출하면 묵시적 객체 형변환으로 의해 참조변수에
//저장된 자식클래스 객체의 메소드를 참조하여 호출
jdbc.insert();
jdbc.update();
jdbc.delete();
jdbc.select();
}
}
package realization;
public class JdbcOracle implements Jdbc {
/*
public void add() {
System.out.println("[oracle]학생정보를 삽입하는 메소드");
}
public void modify() {
System.out.println("[oracle]학생정보를 변경하는 메소드");
}
public void remove() {
System.out.println("[oracle]학생정보를 삭제하는 메소드");
}
public void search() {
System.out.println("[oracle]학생정보를 검색하는 메소드");
}
*/
@Override
public void insert() {
System.out.println("[oracle]학생정보를 삽입하는 메소드");
}
@Override
public void update() {
System.out.println("[oracle]학생정보를 변경하는 메소드");
}
@Override
public void delete() {
System.out.println("[oracle]학생정보를 삭제하는 메소드");
}
@Override
public void select() {
System.out.println("[oracle]학생정보를 검색하는 메소드");
}
}
package realization;
//학생 관리 클래스가 반드시 상속받아야 되는 인터페이스
// => 학생 관리 클래스의 메소드 작성 규칙 제공 - 작업지시서
public interface Jdbc {
void insert();
void update();
void delete();
void select();
}