이 예제는 DRUID 데이터베이스 연결 풀을 사용하여 SpringBoot를 MyBatis와 통합하는 방법을 공유합니다. 특정 내용은 다음과 같습니다
SpringBoot 프로젝트에서 다음 종속성을 추가하십시오
<!-- spring mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <Artifactid> mysql-connector-java </artifactid> <cope> runtime </scope> </fectionement> <!-druid 데이터베이스 연결 풀-> <pectionency> <groupid> com.alibaba </groupid> <atifactid> druid </artifactid> <0.26 </decendency>
리소스 디렉토리에서 jdbc.properties 구성 파일을 작성하고 다음 구성을 추가하십시오.
#Database 구성 spring.datasource.url = jdbc : mysql : //127.0.0.1 : 3306/test? useUnicode = true & characterencoding = utf8 & usessl = falsspring.d atasource.username = adminspring.datasource.password = adminspring.datasource.driver class-name = com.mysql.jdbc.driver# 연결 풀 구성 # 크기, 최소, 최대 스프링 초기화 초기화 크기, 최대 스프링. 밀리 초 유휴 시간이 TimeBetweenevictionRunsmillis보다 큰 유휴 시간 인 경우 유휴 시간이 유효한 Spring.datasource.datasource.testwhileIdle = true#을 감지하여 연결을 적용 할 때 유효성을 감지하기 위해 유효한 유효한 지 여부에 관계없이 유효한 유효한#을 유효한지에 대한 유효한#에 유효한#을 검증 할 때 유효한#을 검증 할 때 유효한#을 검증하기 위해 유휴 시간이 TimeBetweenevictionRunsmillis보다 큰 실행에 영향을 미치는 경우, 유휴 시간이 연결을 신청할 때 유휴 시간이됩니다. 연결은 유효한 spring.datasource.testonreturn = false# pscache를 활성화하려면 0보다 큰 것으로 구성되어야합니다. 0보다 큰 경우, PoolpreparedStatements는 자동으로 Truespring.datasource.maxpoolpreedstaterConnections = 20# 속성 유형이 될 수 있도록 자동으로 트리거됩니다. 확장자 플러그인은 별칭으로 구성됩니다. 공통 플러그인은 다음과 같습니다.# 모니터링 통계 : 로깅 필터의 통계# : SQL 주입에 대한 방어 용 로그4J# Wallspring.datasource.filters = STAT, LOG4J, WALL
데이터 소스 구성 클래스 DataSourceConfig.java 작성 코드는 다음과 같습니다.
package com.liao.mybatis; import com.alibaba.druid.pool.druiddatasource; import org.mybatis.spring.spring.mapperscan; import org.slf4j.logger; import org.slf4j.loggerfactory; import org.springfrfamework.bean org.springframework.bean.bean.bean.annotation.value; import org.springframework.context.annotation.bean; import org.sprameframework.context.annotation.configuration; import org.springframework.context.annottation.propertysource; import org.spramframework.sterecorce; javax.sql.datasource; import java.sql.sql.sqlection;/** * data source * * @author hongyangliao * @classname : datasourceconfig * @date 18-1-2 8:56 pm */ @configuration @mapperscan ( "com.liao. **. **. **. **. **. logger logger = loggerfactory.getLogger (dataSourceConfig.class); @autowired private jdbcconfig jdbcconfig; @bean @primary // 동일한 데이터 소스에서 먼저 주석이 달린 데이터 소스 공개 데이터 소스 DataSource () {druiddatasource druiddatasource = 새로운 druiddatasource (); druiddatasource.seturl (jdbcconfig.geturl ()); druiddatasource.setusername (jdbcconfig.getusername ()); druiddatasource.setpassword (jdbcconfig.getpassword ()); druiddatasource.setinitialsize (jdbcconfig.getinitialsize ()); druiddatasource.setminidle (jdbcconfig.getminidle ()); druiddatasource.setMaxActive (jdbcconfig.getMaxActive ()); druiddatasource.settimebetweenevictionRunsmillis (jdbcconfig.gettimebetweenevictionRunsmillis ()); druiddatasource.setminevictableDletimemillis (jdbcconfig.getMineVictableDletimemillis ()); druiddatasource.setValidationQuery (jdbcconfig.getValidationQuery ()); druiddatasource.settestwhileIdle (jdbcconfig.istestestwhileIdle ()); druiddatasource.settestonbronge (jdbcconfig.istestonborring ()); druiddatasource.settestonreturn (jdbcconfig.istestonreturn ()); druiddatasource.setmaxpoolpreparedstatementperconnectionsize (jdbcconfig.getmaxpoolprepedstatementperconnectionsize ()); try {druiddatasource.setfilters (jdbcconfig.getfilters ()); } catch (sqlexception e) {if (logger.isinfoenabled ()) {logger.info (e.getMessage (), e); }} return druiddatasource; } /** * JDBC 구성 클래스 * * @author hongyangliao * @classname : jdbcconfig * @date 18-1-2 9:00 pm * /@propertysource (value = "classpath : jdbc.properties") @componter public static class jdbcconfig { /** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** @Value ( "$ {spring.datasource.username}") 개인 문자열 사용자 이름; / *** 드라이버 이름*/ @Value ( "$ {spring.datasource.driver-class-name}") 개인 문자열 드라이버 클래스; / ** * 데이터베이스 연결 URL */ @Value ( "$ {spring.datasource.url}") 개인 문자열 URL; / *** 데이터베이스 연결 풀 초기화 크기*/ value ( "$ {spring.datasource.initialSize}") private int initialsize; / *** 데이터베이스 연결 풀에서 최소 연결 수*/ value ( "$ {spring.datasource.minidle}") private int minidle; / *** 데이터베이스 연결 풀에서 최대 연결 수*/ value ( "$ {spring.datasource.maxActive}") private int maxactive; / *** 연결이 타임 아웃을 기다리는 시간을 얻으십시오*/ @Value ( "$ {spring.datasource.maxwait}") Private Long Maxwait; / ****/ value ( "$ {spring.datasource.timebetweenevictionRunsmillis}")를 탐지하는 빈도는 비공개로 긴 timebetweenevictionRunsmillis; / *** 수영장에서 생존하기위한 최소 시간*/ value ( "$ {spring.datasource.minevictableDletimemillis}") 개인 Long MineVictableDletimemillis; / ** * 연결이 유효한 지 테스트하는 SQL */ @Value ( "$ {spring.datasource.validationQuery}") private String validationQuery; / ** * 연결을 신청할 때 유휴 시간이 TimeBetweenevictionRunsmillis보다 큰 경우 연결이 유효한 지 확인 */ @Value ( "$ {spring.datasource.testShileIdle}") 개인 부울 testwhileIdle; / ** * 연결을 신청할 때 연결이 유효한 지 확인 */ value ( "$ {spring.datasource.testonborring}") 개인 부울 testonborrow; / ** * 연결을 반환 할 때 연결이 유효한 지 확인 */ value ( "$ {spring.datasource.testonreturn}") 개인 부울 testonreturn; / *** PSCACHE SIZE*/ @VALUE ( "$ {Spring.datasource.MaxPoolPreparedStatementPerConnectionsize}") Private int MaxPoolPreperedStatePerConnectionsize; / ***alias*/ value ( "$ {spring.datasource.filters}")별로 확장 플러그인을 구성합니다. public String getUserName () {return username; } public void setusername (String username) {this.username = username; } public String getDriverClass () {return driver class; } public void setDriverClass (String DriverClass) {this.driverClass = DriverClass; } public String getUrl () {return url; } public void seturl (String URL) {this.url = url; } public String getPassword () {return password; } public void setpassword (문자열 비밀번호) {this.password = password; } public int getInitialSize () {return initialsize; } public void setInitialSize (int initialsize) {this.initialSize = 이니셜 크기; } public int getMinidle () {return minidle; } public void setMinidle (int minidle) {this.minidle = minidle; } public int getMaxActive () {return maxactive; } public void setMaxActive (int maxactive) {this.maxActive = maxActive; } public long getmaxwait () {return maxwait; } public void setmaxwait (긴 맥원) {this.maxwait = maxwait; . } public void settimebettimevictionRunsmillis (long timebetweenevictionRunsmillis) {this.TimeBetweenEvictionRunsmillis = timebetweenevictionRunsmillis; . } public void setMineVictableDletimEmillis (Long MineVictableDletimEmillis) {this.minevictableDletimemillis = minevictableDletimemillis; } public String getValidationQuery () {return validationQuery; } public void setValidationQuery (String validationQuery) {this.validationQuery = validationQuery; } public boolean istestwhileIdle () {return testwhileIdle; . } public boolean istestonborrow () {return testonborrow; } public void settestonborrow (부울 testonborrow) {this.testonborring = tredonborrow; } public boolean istestonreturn () {return testonreturn; } public void settestonreturn (부울 testonreturn) {this.testonreturn = testonreturn; } public int getmaxpoolprepedstatementperconnectionsize () {return maxpoolpreparedStatePerConnectionsize; } public void setmaxpoolprepedStatementPerConnectionsize (int maxpoolpreparedStatementPerConnectionSize) {this.MaxPoolPrepRedStatementPerConnectionsize = maxpoolpreperedStatementPerConnectionsize; } public String getFilters () {리턴 필터; } public void setFilters (문자열 필터) {this.filters = 필터; }}}세션 공장 구성 클래스 SessionFactoryConfig.java 작성 코드는 다음과 같습니다.
package com.liao.mybatis; import java.io.ioexception; import javax.sql.datasource; import org.mybatis.spring.sqlsessionfactorybean; import org.springframework.beans.natory.annotation.autowired; import org.springframework.context org.springframework.context.annotation.configuration; import org.springframework.core.io.classpathresource; import org.spramframework.transaction.annotation.enableTransactionManagement;@configuration@enableTransactionManagement // enat annotation transactionmanagement; <TX : 주석 구동 /> 공개 클래스 SessionFactoryConfig { /** * MyBatis 구성 경로 * /개인 정적 문자열 mybatis_config = "mybatis-config.xml"; @autowired Private DataSource DataSource; /**** SQLSESSIONFACTORYBEAN* 및 CAMEL NAMING과 같은 구성을 설정합니다. ETC * MAPPER 매핑 경로 * 설정 데이터 소스 데이터 소스 설정 * * @Title : CreateSqlSessionFactoryBean * @Author : hongyangliao * @Date : 18-1-3 9:52 AM * @Param * @return org.mybatis.spring.sqlsessionactorybean sqlsessionactorybean * @throws */ @throws */ @throws */ @throws */ @throws. "sqlsessionFactory") public sqlsessionFactoryBean CreateSQLSESSIONFACTORYBEAN ()는 IOException {SQLSESSIONFACTORYBEAN SQLSESSIONFACTORY = NEW SQLSESSIONCACTORYBEAN (); // myBatis 구성 스캔 경로 SQLSESSIONFACTORY.SETCONFIGLOCATE (new ClassPathResource (mybatis_config)); // SET DATASORCE SQLSESSIONFACTORY.SETDATASOURCE (DataSource); 반환 sqlsessionFactory; }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.