데이터베이스 연결 풀의 c3p0 및 Druid
3725 단어 데이터베이스데이터베이스 연결 풀JDBC
데이터베이스 연결 풀
개념: 사실은 하나의 용기(집합)로 데이터베이스에 연결된 용기를 저장한다.시스템이 초기화되면 용기가 만들어지고 용기에 연결 대상을 신청합니다. 사용자가 데이터베이스에 접근할 때 용기에서 연결 대상을 얻고 사용자가 접근한 후에 연결 대상을 용기에 돌려줍니다.
장점: 1.자원을 절약하다.사용자 액세스 효율성
구현: 표준 인터페이스: DataSource javax.sql 패키지의 1.방법:* 연결 가져오기:getConnection()* 연결 반환:Connection.close().연결 대상 연결이 연결 풀에서 가져온 경우 연결을 호출합니다.close () 방법은 연결을 닫지 않습니다.연결을 돌려주는 겁니다.
일반적으로 우리는 그것을 실현하지 않고 데이터베이스 업체가 실현한다
:
//1.
DataSource ds = new ComboPooledDataSource();
//2.
Connection conn = ds.getConnection()
Druid: 데이터베이스 연결 탱크 실현 기술, 알리바바가 제공한 1.단계: 1.jar 패키지 druid-1.0.9 가져오기jar 2. 정의 프로필: * 은properties 형식의 * 임의의 이름으로 할 수 있으며 임의의 디렉터리 아래에 놓을 수 있습니다.구성 파일을 로드합니다.Properties 4. 데이터베이스 연결 풀 객체 가져오기: 공장에서 DruidDataSourceFactory 5.연결 가져오기: getConnection
* :
//3.
Properties pro = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.
Connection conn = ds.getConnection();
도구 클래스 정의 1.클래스 JDBCutils 2.정적 코드 블록 불러오기 설정 파일을 제공하고 연결 탱크의 대상을 초기화합니다.제공 방법 1.연결 가져오기 방법: 데이터베이스 연결 탱크를 통해 연결을 가져오기 2.리소스 여유 확보 3.풀을 연결하는 방법
* :
public class JDBCUtils {
//1. DataSource
private static DataSource ds ;
static{
try {
//1.
Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2. DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/**
*
*/
public static void close(Statement stmt,Connection conn){
/* if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();//
} catch (SQLException e) {
e.printStackTrace();
}
}*/
close(null,stmt,conn);
}
public static void close(ResultSet rs , Statement stmt, Connection conn){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();//
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
*
*/
public static DataSource getDataSource(){
return ds;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.