Today I Learned_220208

최대 1 분 소요

Spring

인프런 자바 강의

JDBC Template

Jdbc : Java를 이용해 데이터베이스와 통신하는 방법

Jdbc만을 사용하려면 드라이버 로딩 - DB 연결 - SQL 작성 - 자원 해제 이 모든 과정을 DAO객체에서 일일히 반복해야 함.

이러한 일련의 과정들을 한 번에 할 수 있게 한 것이 JDBC Template.

중복된 코드를 제거하고 DataSource에 저장하여 이용함.

DataSource는 c3p0에서 제공

pom.xml에 dependency 추가

<repositories>
    <repository>
        <id>oracle</id>
        <name>ORACLE JDBC Repository</name>
        <url>http://maver.jahia.org/maven2</url>
    </repository>
</repositories>

<!-- jdbc 관련 의존 설정 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.1.6.RELEASE</version>
    </dependency> 
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5</version>
    </dependency> 

DAO객체 생성자에 DataSource 초기화 하는 부분을 넣어서 사용한다.

쿼리 작성은 직접 파라미터 전달, PreparedStatementSetter 사용, PreparedStatementCreator 사용 등이 있다.

Connection pool

다수의 클라이언트가 접속 - 각각의 클라이언트마다 데이터베이스 커넥션을 만들 수 없다. -> 서버에 부하를 줄 수 있음

클라이언트의 요청이 들어오지 않아도 데이터베이스 커넥션을 미리 만들어 놓는다.

c3p0모듈의 ComboPooledDataSource 클래스, 스프링 설정파일로 컨테이너상에 빈 객체를 띄워서 설정, java config파일로 설정하는 등 여러 방법으로 connection pool 설정이 가능하다.

Github Blog

포스팅을 올리려는데 아무리 저장을 해도 포스팅이 올라가지 않았다.

date값이 현재시간보다 뒤의 시간으로 지정해두면 포스팅이 올라가지 않았다.

포스팅이 보이지 않을 때는 시간 값을 확인해 보자.

Screen Shot 2022-02-08 at 11.15.11 PM

23시 30분이 되기 전에 올리려고 했더니 안 됐다.

카테고리:

업데이트: