java 초간단 동적 jdbc 연결

2019. 4. 2. 09:36language/java

java 초간단 동적 jdbc 연결

 

DB 접속정보에 따라 여러 DB를 동적으로 접근해서 특정 쿼리를 실행해야 하는 경우가 생겼다.

 

보통에 웹은 정해진 DB를 사용하며 spring 에서 data source 에 정보를 셋팅하고

 

mybatis 를 사용하면 쉽게 jdbc 를 사용할 수 있다.

 

동적으로 jdbc에 연결하는 방법은 무수히도 많을 것이다.

 

필자는 apache의 BasicDataSource 와 spring jdbc의 JdbcTemplate 를 사용해서 아주 심플하게 동적 연결을 구현해 보았다.

 

본 포스팅은 mybatis도 사용하지 않고 그냥 단순하게 연결해서 쿼리를 실행하는 방법을 작성한다.

 

먼저 필요한 라이브러리들이 있다.

 



 

기능은 간단하지만 라이브러리들간의 dependency가 있어서 총 8개의 라이브러리가 필요하다.

 

commons-dbcp-x.x.jar

commons-logging-x.x.jar

commons-pool.jar

ojdbc6.jar (필자는 oracle 연결, 다른 db들을 연결할땐 다른 jar파일도 필요함)

spring-beans-x.x.x.jar

spring-core-x.x.x.jar

spring-jdbc-x.x.x.jar

spring-tx-x.x.x.jar

총 8개 이다.

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public static void main(String[] args) throws SQLException {
        BasicDataSource dataSource = new BasicDataSource();
 
        dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
        dataSource.setUrl("jdbc:oracle:thin:@아이피:포트/서비스명");
        dataSource.setUsername("유저명");
        dataSource.setPassword("비밀번호");
 
        // datasource 연결
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 
        List<Map<String, Object>> queryForList = jdbcTemplate.queryForList("쿼리문");
 
        queryForList.forEach(x -> System.out.println(x));
 
        // datasource 종료
        dataSource.close();
    }
cs

 

 



 

2# : BasicDataSource 생성

4#~7# : DB 접속정보 셋팅

10# : JdbcTemplate 에 DataSource 연결

12# : 쿼리 실행

14# : 쿼리 결과 출력

17# : DataSource 종료

 

위에서 DataSource 연결 부분만 바꿔주면 매번 새로운 DB에 접속해서 쿼리를 실행할 수 있다.

 

끝 !~