본문 바로가기

언어공부/JDBC&오라클&SQL

JDBC - DAO & DTO를 이용한 Update문 작성

JDBC - DAO & DTO를 이용한 Update문 작성에 대해서 알아보자.

 

 

DAO와 DTO를 import 해서 bdao 객체를 생성하고, Scanner클래스로 게시판 번호를 입력받아 DTO타입 db_no에  bdao.getFindNo(bno)값을 저장한다. db_no에는 해당 bno값의 레코드 값들이 저장된다.

 

if 조건문에 대해서 db_no가 null이면 수정을 못하며, null이 아니면 Scanner클래스로 수정할 글쓴이, 제목, 내용들을 입력받아 DTO타입 eb인스턴스에 따로 저장을 한다. re에 bdao의 editBoard(eb)값을 대입해 re==1이면 수정 성공 문구가 출력된다.

 

16번을 수정해본다.

 

수정 성공

 

수정 실패

 

select문으로 수정된 것을 확인할 수 있다.

 

DAO(Data Access Object)

 

 

데이터베이스의 데이터에 접근하며,  데이터베이스를 사용해 데이터 조작하는 기능을 하는 객체를 뜻한다.

여기서 getFindNo메소드에 Scanner클래스에서 입력받은 bno가 매개변수로 들어온다. db_no를 null값으로 미리 초기화 시키고(검색 실패 시 null값 반환),  try문에 의해 jdbc 드라이버 클래스가 로드되며, 데이터베이스와 연결한다.  sql문을 생성하고, 쿼리문을 미리 컴파일하여 수행 후 pt객체를 생성한다. 쿼리문 물음표(?)에 정수숫자로 번호값을 저장해주고, executeQuery()로 SQL문장을 실행한다. if조건문에 의해 번호가 있으면 참으로, db_no에 새로운 객체주소를 저장한 후, setter메소드로 검색된 번호값을 저장한다. finally로 생성된 rs, pt, con을 닫아준다. 마지막으로 db_no를 반환해준다.

 

editBoard메소드에는 DTO타입의 매개변수가 들어온다. 저장이 실패되면 re=-1이 반환되며, try문에 의해 jdbc 드라이버 클래스가 로드되며, 데이터베이스와 연결한다.  sql문을 생성하고, 쿼리문을 미리 컴파일하여 수행 후 pt객체를 생성한다. 쿼리문 물음표(?)에 번호값, 변수들을 각자 지정해준 후 executeUpdate()로 SQL문장을 실행한다. re에 성공한 레코드 행의 개수를 저장하며, finally로 생성된 pt와 con을 닫아준다. 마지막으로 re를 반환해준다. 

 

 

DTO(Data Transfet Object)

 

 

프로세스 간에 데이터를 전달하는 객체로 데이터가 저장되어 있다. private로 지정되어 있어 다른 클래스에서 접근하지 못하고 setter, getter메소드로 접근할 수 있다.

 


DAO, DTO를 사용하지 않으면 코드가 전체적으로 길어지는 것을 알 수 있다.