데이터 읽어오기

2020. 5. 13. 13:21DB

1) ResultSet 의 next()

- 다음 데이터가 있으면 그 데이터를 가리키는 곳으로 이동하고 true를 리턴

   다음 데이터가 없음us false를 리턴

 

여러 행의 데이터라면 반복문을 이용해 각 행에 접근하는 것이 가능

while(ResultSet.next())

 

2) ResultSet 의 get메소드

- 열의 값을 가져올 때 사용하는 메소드

get자료형(열이름이나 select 구문의 열 인덱스)로 사용

- getInt, getDouble, getString, getDate 형태로 만들어져 있음

- 모든 열의 값은 getString으로 가져오는것이 가능

getInt("deptno"): deptno열의 값을 정수로 리턴

getInt(1): 첫번째 열의 값을 정수로 리턴

getString("dname"): dname 열의 값을 문자열로 리턴

 

Transaction

- 한 번에 처리되어야 하는 작업의 단위

1) 구현 방식

auto-commit: sql문장이 성공적으로 수행되면 자동으로 commit

manual-commit: commit이나 rollback을 명시적으로 호출해야만 commit되거나 rollback 되는 방식

 

2) java에서의 활용

- 기본적으로 autocommit인데 manualcommit으로 변경하고자 하는 경우에는

  Connection.setAutoCommit(false); 호출

- commit이나 rollback을 하고자 하는 경우에는 Connection.commit() 또는 rollback을 호출

- rollback은 작업을 취소하는 명령인데 대부분의 경우는 하나의 거래를 수행하는 도중 예외가 발생하면

   rollback을 시킴

- 작업이 정상적으로 완료되면 commit을 호출해서 원본에 작업 내용을 반영함.

 


Java에서 프로시저 사용

- PreparedStatement대신 CallableStatement 생성

CallableStatement 실행객체변수 = Connection.prepareCall("{call 프로시저이름(?...)}");

실행객체변수.set자료형(물음표 번호, 실제 데이터)...

 

-> 실행은 executeUpdate()또는 executeQuery()

 

프로시저 호출 및 데이터 삽입

 

데이터 삽입 확인

 

데이터베이스 연동 패턴

1. DTO(Data Transfer Object - Variable Object, Domain) 패턴

- 여러 개의 속성을 묶어서 하나로 표현하기 위한 클래스를 DTO 또는 VO라고 함.

- 테이블과 매핑되는 클래스를 만들어서 사용하는 패턴 - 이 패턴의 확장이 ORM: SQL없이

   인스턴스만으로 데이터베이스 작업을 수행하도록 해주는 프레임워크

 

2. DAO(Data Access Object)

- 데이터베이스 작업만 수행하는 별도의 클래스를 만들어서 사용하는 패턴

- 이 패턴을 서버에 적용할 때는 특별한 경우가 아니면 singleton pattern으로 디자인

 

3. Singleton

- 객체를 하나만 만들 수 있도록 클래스를 디자인하는 패턴

 

4. Service: 사용자의 요구(Business Logic)를 처리하는 클래스

 

5. Controller: 사용자의 요청을 받아서 필요한 service를 호출하는 클래스

 

6. View: 클라이언트가 보고 있는 화면

 

DTO & DAO패턴을 이용한 CRUD패턴(Create Read Update Delete)

1. 작업에 필요한 샘플 데이터 생성

1) 샘플 테이블을 생성

- 상품 테이블

   상품 코드: 영문과 숫자로 이루어진 문자열 10자리 - 자주 변함, primary key

   상품 이름: 한글 포함한 20자리 문자열 - 변하지 않음, 필수

   상품 원산지: 한글 포함한 50자리 문자열 - 변하지 않음, 필수

   상품 가격: 정수 10자리 이내 - 기본값 0

   상품 입고일: 날짜 - 기본값 오늘 날짜

 

3. DAO 클래스를 생성 - 데이터베이스 작업만을 담당하는 클래스

- GoodDAO 클래스

- 서버에서 사용할 것이라면 Singleton 패턴으로 작성

 

   

 

'DB' 카테고리의 다른 글

Index View  (0) 2020.05.12
DB 객체  (0) 2020.05.11
제약조건  (0) 2020.05.11
SQL 분류  (0) 2020.05.11
DB 설계  (0) 2020.05.08