반응형
데이터베이스 프로그래밍 3요소
- DBMS: 데이터베이스 관리 시스템
- 데이터베이스: 데이터를 저장할 공간
- DBMS 클라이언트: 데이터베이스를 사용하는 어플리케이션
Transaction 관리를 위해 InnoDB 를 이용한다
JDBC 실행
- JDBC 드라이버 로딩
- 데이터베이스 커넥션 수행
- 쿼리 실행을 위한 Statement 객체 생성
- 쿼리 실행
- 쿼리 실행 결과 사용
- Statement 종료
- 데이터베이스 커넥션 종료
jdbc 드라이버는 DBMS의 통신을 담당하는 자바 클래스로써, DBMS 마자 별도의 JDBC 통신이 필요하다.
- JDBC 드라이버 로딩 ( 맨 처음 한 번만 로딩하면 된다. )
class.forName("JDBC 드라이버 클래스의 완전한 이름")
- 데이터베이스 커넥션 수행
DriverManager.getConnection(String jdbcURL, String user, String password)
- 쿼리 실행을 위한 Statement 객체 생성
Statement stmt = conn.createStatement();
ResultSet executeQuery(String query);// select 쿼리 실행
int executeUpdate(String query); // insert, update, delete 쿼리 실행
- 쿼리 실행
- 쿼리 실행 결과 사용
- Statement 종료
- 데이터베이스 커넥션 종료
Statement vs PreparedStatement
Statement
- 단일로 사용될 때 빠른 속도를 지닙니다.
- 쿼리에 인자를 부여할 수 없습니다.
- 매번 컴파일을 수행해야 합니다.
PreparedStatement
- 쿼리에 인자를 부여할 수 있습니다.
- 처음
프리컴파일
된 후, 이후에는 컴파일을 수행하지 않습니다. - 여러번 수행될 때 빠른 속도를 지닙니다.
- 값 변환 자동화 및 간결한 코드
https://mozi.tistory.com/29 를 보면, 자세한 예시를 확인 가능합니다.
jdbc 트랜잭션
트랜잭션은 시작과 종료를 가지고 있다.트랜잭션이 시작되면, 이후로 실행되는 쿼리 결과는 DBMS 에 곧바로 반영되지 않고 임시로 보관된다. 이후 트랜잭션을 커밋하면 임시 보관한 모든 쿼리 결과를 실제 데이터에 반영한다.
- JDBC 오토커밋을 FALSE 로 한다.
- JTA(Java Transaction API)를 이용한다.
커넥션 풀
커넥션 풀기법이란 데이터베이스와 연결된 커넥션을 미리 만들어서 풀 속에 저장해 두고 있다가 필요할 때에 커넥션 풀에서 가져다쓰고 다시 풀에 반환하는 것이다.
- 커넥션 연결 시간을 단축시킬 수 있다.
- 일정 수의 커넥션을 일정하게 유지한다.( 커넥션을 계속해서 재사용 -> 트래픽이 몰려도 웹이 쉽게 다운되지 않게 함)
전체적인 웹의 성능과 처리량이 향상된다.
예) DBCP API
반응형
'스프링, 자바' 카테고리의 다른 글
MVC 패턴 구현 요약 (0) | 2021.01.26 |
---|---|
자바 서블릿 요약 (0) | 2021.01.26 |
Lambda, Stream : wip (0) | 2021.01.24 |
자바의 직렬화(Java Serialization) (0) | 2021.01.24 |
NIO 기반 입출력 및 네트워킹 (0) | 2021.01.23 |