java 초간단 동적 jdbc 연결
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에 접속해서 쿼리를 실행할 수 있다.
끝 !~