2019. 4. 2. 09:36ㆍlanguage/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에 접속해서 쿼리를 실행할 수 있다.
끝 !~
'language > java' 카테고리의 다른 글
java 특정 문자열 개수 구하기 (0) | 2019.05.08 |
---|---|
java 리눅스 윈도우 명령어 실행 / command line executor / cmd (2) | 2018.05.11 |
Java 정규식 테스트 사이트 (0) | 2018.03.02 |
java 비밀번호 정규식 (특수문자, 영문, 숫자) (0) | 2018.03.02 |
java 날짜 체크하기 (0) | 2018.02.23 |
JAVA BigDecimal 사칙연산(더하기, 빼기, 나누기, 곱하기), 비교 compareTo, 소수점 처리 (올림, 버림, 반올림) (0) | 2017.11.16 |
Java bean to map, vo to map, 객체를 Map으로 변환 (5) | 2017.09.29 |
Java HttpUrlConnection 으로 통신하기 / 파일 전송 및 수신 (0) | 2017.09.28 |
Java 파일을 바이너리 스트링으로, 바이너리 스트링을 파일로 변환 / 파일 전송 (2) | 2017.09.28 |
JAVA List VO 정렬 Collections Sort Comparator 사용하기 (0) | 2017.09.04 |