자바 데이터베이스 연결 풀
하나의 용기 가 여러 개의
를 가지 고 있 습 니 다.프로그램 이 데이터 베 이 스 를 조작 해 야 할 때 바로 풀 에서 연결 을 꺼 내 고 사용 한 후에 돌려 주 는 것 은 스 레 드 풀 과 같은 이치 입 니 다.2.왜 연못 을 연결 해 야 합 니까?좋 은 점 은 무엇 입 니까?
1.자원 을 절약 하고 데이터 베 이 스 를 방문 할 때마다 새로운 연결 을 만 들 면 시스템 자원 을 만 들 고 소각 하 는 데 낭비 합 니 다.
2.응답 성 이 좋 고 만 드 는 시간 을 절약 하 며 응답 성 이 좋 습 니 다.
3.데이터 베 이 스 를 통일 적 으로 관리 하고 업무 의 팽창 으로 인해 데이터 베 이 스 를 연결 하 는 무한 한 증 가 를 피한다.
4.감시 하기 쉽다.
3.어떤 연결 풀 방안 이 있 습 니까?
데이터베이스 연결 탱크 의 방안 은 적지 않다.내 가 접촉 한 연결 탱크 방안 은 다음 과 같다.
1.C3p0
이 연결 탱크 는 제 가 오래 전에 본 적 이 있 지만 그 당시 에 제 가 약 했 기 때문에 잘 이해 하지 못 했 습 니 다.지금 은 사용 하 는 것 도 적 습 니 다.할아버지 급 연결 탱크 는 무시 할 수 있 습 니 다.
2.DBCP (Database Connection Pool)
이 이름 은 매우 직 설 적 이 고 데이터베이스 연결 풀 로 Tomcat 5.5 부터 Tomcat 에 DBCP 의 데이터 원본 이 내장 되 어 있어 DBCP 데이터 원본 을 매우 편리 하 게 설정 할 수 있다.
3.Druid
아 리 개원 의 데이터 원본 은 이것 도 전 회사 가 사용 한 데이터 원본 으로 Druid 는 강력 한 모니터링 과 확장 기능 을 제공 할 수 있 으 며 강점 은 모니터링 에 있다.
4.HiKariCP
가장 빠 른 데이터베이스 연결 탱크 라 고 불 리 는 springboot 2.0 도 기본 데이터 원본 을 HikariCP 로 바 꾸 어 성능 보다 강하 다.
4.연결 탱크 가 주목 해 야 할 매개 변수
Druid 의 데이터베이스 연결 풀 설정 보기:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driverClassName}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
<property name="initialSize" value="5"/>
<property name="maxIdle" value="10"/>
<property name="minIdle" value="5"/>
<property name="maxActive" value="15"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="180"/>
<property name="maxWait" value="3000"/>
<property name="validationQuery">
<value>SELECT 1</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
</bean>
1.driverClassName 에서 사용 하 는 JDBC 드라이브 의 올 바른 자바 클래스 이름,예 를 들 어 my sql 연결 com.mysql.cj.jdbc.Driver2.jdbcUrl 데이터베이스 연결jdbc:mysql://127.0.0.1:3306/mydatabase
3.username 알 잖 아,데이터베이스 사용자 이름,예 를 들 어 루트
4.password 너무 직 설 적 이 고 데이터베이스 사용자 비밀번호,예 를 들 어 p123456
5.initialSize 연결 풀 을 만 들 때 자동 으로 만 든 데이터베이스 연결 수량 은 10-50 을 권장 합 니 다.
6.maxIdle 최대 남 은 연결:연결 탱크 에서 남 은 상 태 를 유지 할 수 있 는 최대 연결 수량 입 니 다.초과 한 남 은 연결 은 방출 됩 니 다.마이너스 로 설정 하면 제한 이 없습니다.initialSize 와 같이 설정 하여 방출 과 생 성 된 성능 손실 을 줄 이 는 것 을 권장 합 니 다.
7.minIdle 최소 남 은 연결:연결 풀 에서 남 은 상 태 를 유지 할 수 있 는 최소 연결 수량 입 니 다.이 수량 보다 적 으 면 새로운 연결 을 만 들 것 입 니 다.0 으로 설정 하면 만 들 지 않 습 니 다.
8.maxActive 최대 동시 활성화 연결 수량.
9.maxWait 연결 풀 에 사용 가능 한 연결 이 없 으 면 최대 대기 시간,시간 초과 시 연결 이 사용 되 지 않 습 니 다.단위 밀리초,설정-1 시 무한 대기 표시,100 밀리초 로 설정 하 는 것 을 권장 합 니 다.
10.testxxx 연결 을 조작 할 때 연결 의 유효성 을 검사 할 지 여부 입 니 다.예 를 들 어 testOnBorrow 는 연결 을 신청 할 때 연결 의 유효성 을 먼저 검사 하고 vaidationQuery 를 실행 합 니 다.온라인 에서 이 설정 을 false 로 설정 하 는 것 을 권장 합 니 다.성능 에 영향 을 줄 수 있 기 때 문 입 니 다.
11.vaidationQuery 는 풀 의 연결 이 사용 가능 한 SQL 문 구 를 검사 합 니 다.drui 는 데이터베이스 에 연결 하여 이 SQL 을 실행 합 니 다.정상적으로 되 돌아 오 면 연결 이 사용 가능 하 다 는 뜻 입 니 다.그렇지 않 으 면 연결 이 사용 되 지 않 는 다 는 뜻 입 니 다.select 1 from dual 을 권장 합 니 다.
5.연결 풀 을 어떻게 만 드 는 지,show me the code
5.1 pom.xml 가입 의존
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
5.2 프로필
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- url、user、password -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_user}" />
<property name="password" value="${jdbc_password}" />
<!-- filters -->
<property name="filters" value="stat" />
<!-- 、 、 -->
<property name="maxActive" value="20" />
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<!-- -->
<property name="maxWait" value="60000" />
<!-- , , -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- , -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- PSCache, PSCache -->
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="20" />
</bean>
<!-- jdbcTemplate, userDao extends JdbcDaoSupport-->
<<bean id="jdbcTemplate" class="com.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="userDao" class="com.caraway.dao.UserDao">
<property name="dataSource" ref="jdbcTemplate"/>
</bean>
5.3 호출
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) context.getBean("userDao");
User user = new User();
user.setUsername(" ");
user.setPassowrd("root");
userDao.saveUser(user);
}
총화연못 과 스 레 드 탱크 를 연결 하 는 이 치 는 똑 같 습 니 다.연못 화 자원 은 생 성과 소각 의 손실 을 낮 추고 시스템 의 응답 을 향상 시 킵 니 다.
오늘 의 중점 은 스 레 드 탱크 의 원 리 를 이해 하고 대부분의 설정 파 라 메 터 를 기억 하 는 것 입 니 다.각 스 레 드 탱크 가 실현 하 는 디 테 일 은 다 르 지만 이 치 는 서로 통 합 됩 니 다.하 나 를 파악 하면 모든 것 을 파악 할 수 있 습 니 다.하 나 를 보면 열 을 보면 열 을 알 수 있 습 니 다.
자바 데이터베이스 연결 풀 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 관련 데이터베이스 연결 풀 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.