Java setDriverClassName(String driverClassName)
2023. 2. 20. 09:45ㆍJava
프로젝트 내 src 내 javabasic 패키지 내 DBCPTest.java
package javabasic;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.dbcp2.BasicDataSource;
public class DBCPTest {
// DataSource(interface) - Apache DBCP API에 BasicDataSource
// : Connection생성 기능(DriverManager upgrade 버전)
// : setter 메소드를 이용해서 연결정보를 지정할 수 있다.
// : 객체 자체에서 연결정보를 가질 수 있다.
// : 매개 변수 필요없이 getConnection()메소드 호출 만으로
// : Connection 생성
// : 내부적으로 Connection Pool 제공한다. DBMS 속도 저하를 막는다
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
// BasicDataSource 생성한다.
BasicDataSource dataSource = new BasicDataSource();
// JDBC 접속 설정을 dataSource 객체에 해준다.
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:orcl"); // thin type은 타입중 네번째 타입의미
dataSource.setUsername("scott");
dataSource.setPassword("a1234");
// dataSource.addConnectionProperty("scott", "a1234");
// Connection Pool설정 : 설정을 하지않으면 default값으로 적용
dataSource.setInitialSize(5); // 최초로 생성할 Connection 수 : default값 = 0개
dataSource.setMaxTotal(10); // 최대로 생성할 Connection 수 : default값 - 8개 음수-무제한
// 5개를 모두 대여했을 경우에는 사용자의 요구에의해서 Connection을 10개까지 더 만들 수
// 있다.(하나씩 추가) 10개를 모두 소진했을 경우에는 사용자는 대기상태가 된다.
dataSource.setMaxWaitMillis(1000); // 커넥션 반납을 기다리는 최대 시간, 커넥션 객체 반납을 기다리는 최대 시간 : 기본-무제한, 음수-무제한
// 지정된 시간동안 커넥션이 반납되지 않으면 예외발생
dataSource.setMaxIdle(5); // 최대로 대여가 가능한 객체수 동시에 최대 5개로 객체수정할 수 있다. 최대 대여 가능한 커넥션 객체의 수 : default값-8,
// 음수-무제한
dataSource.setMinIdle(5); // 최소 대여가능한 커넥션 객체의 수 : default값 - 0
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
// 접속, 드라이버매니저가했듯이 파라미터 설정을 안해도 된다
try {
conn = dataSource.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from dept");
while (rs.next()) {
System.out.println(rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
// BasicDataSource로 connection을 반납하겠다는 뜻, 이반납되는커넥션은 Apache 에서 만든 커넥션
// connection 이 종료가 되고 그런것은 아니다.
if (conn != null)
conn.close();
if (dataSource != null)
dataSource.close();
}
}
}
실행 결과
10, ACCOUNTING, NEW YORK
20, RESEARCH, DALLAS
30, SALES, CHICAGO
40, OPERATIONS, BOSTON
'Java' 카테고리의 다른 글
Java getBufferSize() (0) | 2023.02.20 |
---|---|
Java executeBatch() (0) | 2023.02.20 |
Java getTime(int columnIndex) (0) | 2023.02.20 |
Java LocalDateTime (0) | 2023.02.19 |
Java BasicDataSource (0) | 2023.02.18 |