[JDBC] 2020.12.28. day_45 VO, JDBC 연동 클래스 작성해보기
2020. 12. 28. 19:15ㆍWeb_Back-end/JDBC
※ JDBC연동을 위해 클래스를 작성해보자 : 예시 - cp_dept table
◎ VO 란 ?
VO |
Value Object |
값을 저장하고, 사용할 목적으로 제작하는 클래스 ( 변경 X ) |
값을 변경하지 않고 그대로 사용한다 |
여러개의 분할된 값을 묶어서 관리하기 위해 작성 |
분할된 값이 묶여서 어떤 값으로 사용되는지 가독성 향상 |
DTO(Data Transfer Object) : 값변경이 가능, 객체간의 값을 전달하기 위한 객체 |
○ VO 작성규칙
Framework 사용 X | 매개변수 있는 생성자를 만든다 (개발자가 VO를 생성하여 값을 넣어준다) |
Framework 사용 O | 매개변수 있는 생성자를 만들지 않는다 (Framework에서 VO를 생성하여 setter method를 호출하고 값을 넣어준다) |
1. 클래스명에 VO를 붙여준다
public class 클래스명VO{
2-1. instance 변수를 선언
private int deptno;
private String dname;
private String loc;
2-2. setter, getter 생성
setter method : 값을 설정하기 위한 목적
getter method : 값을 얻기 위한 목적
public void set변수명(매개변수){
}
public 반환형 get변수명(){
}
※ dept table로 연습해보기
public class TestDeptVO{
private int deptno;
private String dname;
private String loc;
public void setDeptno(int deptno){
this.deptno = deptno;
}
public int getDeptno(){
return deptno;
}
...
※ _ insert, update, delete
※ _ select 조회
String sql = "select deptno, dname, loc from dept";
ResultSet rs = stmt.executeQuery(sql); //rs가 cursor의 제어권을 담는다
int deptno = 0;
String dname = "";
String loc ="";
while( rs.next() ){ //next() : pointer(cursor) 의 다음(아래)에 레코드가 존재하는지 반환
deptno = rs.getInt("deptno"); //getInt() : 오라클의 데이터형을 java의 int로 가져온다
dname = rs.getString("dname"); //getString() : 오라클의 데이터형을 java의 String으로 가져온다
loc = rs.getString("loc");
}