Este ejemplo comparte con usted el método de integrar SpringBoot con MyBatis utilizando Druid Database Connection Pool. El contenido específico es el siguiente
En el proyecto SpringBoot, agregue las siguientes dependencias
< <AtifactId> mysql-confonector-java </artifactid> <cope> runtime </cope> </pepertency> <!-Druid Database Connection Pool-> <Spendency> <MoupRoMID> com.alibaba </proupId> <AriFactID> druid </artifactid> <pontion> 1.0.26 </versión> </dependiente>
En el directorio de recursos, cree el archivo de configuración JDBC.Properties y agregue la siguiente configuración
#Configuración de Database spring.datasource.url = JDBC: mysql: //127.0.0.1: 3306/test? UseUnicode = true & caracteresCoding = utf8 & Usessl = falsspring.d atasource.username = adminspring.datasource.password = adminspring.dataSource.driver-classs-name = com.mysql.jdbc.driver# Configuración de la configuración del grupo de conexión # Inicializar el tamaño, mínimo, el máximo spring.dataSource.initialSize = 5 spring.dataSource.minidle = 5 spring.dataSource.maxactive = 20 # Configure el tiempo para obtener la conexión que espera el tiempo de espera de la conexión. spring.datasource.timeBetweenEvictionRunsMillis=60000 # Configure the minimum time to survive in the pool, in milliseconds spring.datasource.minEvictableIdleTimeMillis=300000# Test whether the connection is valid sqlspring.datasource.validationQuery=select 'x'# It is recommended to configure it to true, not affect performance and ensure security# When Solicitando una conexión, si el tiempo de inactividad es mayor que el tiempo de tiempo de tiempo de tiempo de tiempo, Ejecute ValidationQuery para detectar si la conexión es válida Spring.dataSource.test WhenlInidle = verdadero# Al aplicar una conexión, ejecutar ValidationQuery para detectar si la conexión es válida.dataSource.Testonbonborro spring.datasource.testonreturn = false# Para habilitar PSCACHE, debe configurarse para que sea mayor que 0. Cuando sea mayor que 0, las estatemaciones de la preparación de la agrupación se activarán automáticamente como truespring.dataSource.maxPoolProparedStatementConnectsize = 20# El tipo de atributo es una cadena. El complemento de extensión está configurado por alias. Los complementos comunes son:# para estadísticas de monitoreo: STAT# para el filtro de registro: log4j# para defensa contra la inyección de SQL: wallspring.datasource.filters = stat, log4j, wall
Cree la clase de configuración de la fuente de datos DataSourCeconfig.java, el código es el siguiente
paquete com.liao.mybatis; import com.alibaba.druid.pool.druiddataSource; import org.mybatis.spring.annotation.mapperscan; import org.slf4j.logger; import org.slf4j.loggerFactory; import org.springFramework.beanss. org. javax.sql.dataSource; import java.sql.sqlexception;/** * fuente de datos * * @author Hongyangliao * @classname: dataSourCeConfig * @date 18-1-2 8:56 pm */ @Configuración @mapperscan ("com.liao. **. **. Dao") Daoourconfenfonfonfonfonfonfonfonfonfonf logger = loggerFactory.getLogger (dataSoUrceconfig.class); @AUtowired private jdbcconfig jdbcconfig; @Bean @Primary // En el mismo DataSource, primero use el DataSource de datos de datos anotado DataSourceSource () {DruidDataSource DruidDataSource = new 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.SetMinEvictableDetLeMillis (jdbcconfig.getmineVictableIdletimillis ()); druiddataSource.setValidationQuery (jdbcconfig.getValidationQuery ()); druiddataSource.settest Whipleidle (jdbcconfig.istestwhileidle ()); druiddatasource.settonborrow (jdbcconfig.istestonborrow ()); druiddatasource.settestonreturn (jdbcconfig.istestonreturn ()); DruidDataSource.SetMaxPoolPreparedStatementConnectsize (jdbcconfig.getMaxPoolProparedStatementPonConnectsize ()); Pruebe {DruidDataSource.SetFilters (jdbcconfig.getFilters ()); } Catch (Sqlexception e) {if (logger.isinfoEnabled ()) {logger.info (e.getMessage (), e); }} return DruidDataSource; } /** * JDBC Clase de configuración * * @author Hongyangliao * @classname: jdbcconfig * @date 18-1-2 9:00 pm * /@propertySource (value = "classpath: jdbc.properties") @Component Public Static Class jdbcconfig { /** * database de usuario * /nombre * /nombre * /nombre * /Nombre * @Value ("$ {spring.dataSource.Username}") Nombre de usuario de cadena privada; / *** Nombre del controlador*/ @Value ("$ {spring.dataSource.driver-class-name}") privado cadena controlador de controlador; / ** * Conexión de base de datos URL */ @Value ("$ {Spring.DataSource.url}") URL de cadena privada; / *** Tamaño de inicialización del grupo de conexión de base de datos*/ @Value ("$ {spring.dataSource.initialSize}") private int inicializize; / *** Número mínimo de conexiones en el grupo de conexión de base de datos*/ @Value ("$ {Spring.Datasource.Minidle}") private int minidle; / *** Número máximo de conexiones en el grupo de conexión de base de datos*/ @Value ("$ {spring.datasource.maxactive}") private int maxactive; / *** Obtenga el tiempo cuando la conexión espera el tiempo de espera*/ @Value ("$ {spring.datasource.maxwait}") privado largo maxwait; / *** Con qué frecuencia detectar*/ @Value ("$ {spring.datasource.timebetweenEvictionRunsmillis}") Private Long TimeBetweeVictionRunsMillis; / *** Tiempo mínimo para una conexión para sobrevivir en la piscina*/ @Value ("$ {spring.datasource.MinevictableIdletimemillis}") Private Long mineVictableDletimillis; / ** * sql para probar si la conexión es válida */ @Value ("$ {spring.dataSource.ValidationQuery}") String privado ValidationQuery; / ** * Al solicitar una conexión, si el tiempo de inactividad es mayor que el timetweenEvictionRunsMillis, verifique si la conexión es válida */ @Value ("$ {spring.dataSource.test whelliDle}") Prueba booleana privada Prueba Whileidle; / ** * Al solicitar una conexión, verifique si la conexión es válida */ @Value ("$ {spring.dataSource.testonBorrow}") Private boolean testOnBorrow; / ** * Al devolver la conexión, verifique si la conexión es válida */ @Value ("$ {spring.dataSource.testonreturn}") Private boolean testOnreturn; / *** pscache size*/ @Value ("$ {spring.datasource.maxPoolPreparedStatementPonConnectsize}") Private int maxPoolPreparedStatementPonnectsize; / ***Configure el complemento de extensión por alias*/ @Value ("$ {spring.dataSource.filters}") Filtros de cadena privada; public String getUsername () {return UserName; } public void setUsername (String UserName) {this.Username = username; } public String getDrivClass () {return DriverClass; } public void setDrivClass (String DriverClass) {this.DrivClass = DriverClass; } public String getUrl () {return url; } public void seturl (url de cadena) {this.url = url; } public String getPassword () {return Password; } public void setPassword (String Password) {this.password = contraseña; } public int getInitialSize () {return inicialSize; } public void setInitialSize (int InitialSize) {this.initialSize = inicialSize; } 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 Long getMaxWait () {return maxwait; } public void setmaxWait (long maxwait) {this.maxwait = maxwait; } public Long GetTimeBetweenEvictionRunsMillis () {return TimeBetweenEvictionRunsMillis; } public void setTimeBetweenEvictionRunsMillis (Long TimeBetweenEvictionRunsMillis) {this.timeBetSeWeVictionRunsMillis = TimeBetweenEvictionRunsMillis; } public Long getMinevictableIdletimemillis () {return minevictableidletimillis; } public void setMinEvictableDletimemillis (Long mineVictableDletimemillis) {this.MinevictableIdletimemillis = mineVictableIdletImillis; } public String getValidationQuery () {return ValidationQuery; } public void setValidationQuery (String ValidationQuery) {this.ValidationQuery = ValidationQuery; } public boolean istest whileidle () {return test whelliDle; } public void settest whelliidle (boolean test whileidle) {this.test whelliDle = test whelliDle; } public boolean istestonBorrow () {return testOnBorrow; } public void settonBorrow (boolean testOnBorrow) {this.testonBorrow = testOnBorrow; } public boolean istestonreturn () {return testOnreturn; } public void settestonreturn (boolean testOnreturn) {this.testonreturn = testOnreturn; } public int getMaxPoolPreparedStatementPonConnectsize () {return maxPoolPreparedStatementPonConnectsize; } public void setMaxPoolPreparedStatementPonConnectsize (int maxPoolPreparedStatementPonConnectsize) {this.maxPoolPreparedStatEmentPonConnectsize = maxPoolPreparedStatementPonConnectsize; } public String getFilters () {Filtros de retorno; } public void setFilters (filtros de cadena) {this.filters = filtros; }}}Crear clase de fábrica de fábrica clase sessionFactoryConfig.java, el código es el siguiente
paquete com.liao.mybatis; import java.io.ioException; import javax.sql.datasource; import org.mybatis.spring.sqlsessionFactoryBean; import org.springframework.beans.factory.annotation.aUtowired; import org.springframework.contontewnotatation.MaTe.MaTeMeTation.MaTeMeT.Entemation.MaTeMeT.Entemation.MaTeMeT.Entemation.MaTeMeT.Entemation.MaTeMeT.Extebean; org. <TX: Annotation-Driven /> Public Class SessionFactoryConfig { /** * MyBatis Configuration Rath * /private static string myBatis_config = "mybatis-config.xml"; @AUTOWIREDEDIRDED DataSource DataSource; /**** Crear sqlsessionFactoryBean* y establecer configuración como nombres de camello. etc* Set mapper mapping path * Set datasource data source * * @Title: createSqlSessionFactoryBean * @author: hongyangliao * @Date: 18-1-3 9:52 am * @param * @return org.mybatis.spring.SqlSessionFactoryBean sqlSessionFactoryBean instance* @throws */ @Bean(name = "sqlSessionFactory") public sqlSessionFactoryBean CreateSqlSessionFactoryBean () lanza ioexception {sqlSessionFactoryBean sqlSessionFactory = new sqlSessionFactoryBean (); // Establecer la ruta de escaneo de configuración myBatis sqlsessionFactory.setConfigLocation (new ClassPathResource (myBatis_Config)); // establecer DataSource SQLSessionFactory.SetDataSource (DataSource); return sqlsessionFactory; }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.