본문 바로가기

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

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

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

 

 

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

 

if 조건문에 대해서 db_no가 null이면 삭제를 못하며, re에 bdao의 delBoard(bno)값을 대입해 re==1이면 삭제 성공 문구가 출력된다. else문으로 db_no가 null이면 번호 값이 없어서 삭제 못한다는 문구가 출력된다.

 

16번을 삭제해본다.

 

삭제 실패

 

삭제 성공

 

select문으로 16번이 삭제된 것을 확인할 수 있다.

 

 

DAO(Data Access Object)

 

 

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

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

 

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

 

DTO(Data Transfet Object)

 

 

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

 


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