Cet exemple partage avec vous la méthode d'intégration de Springboot à MyBatis à l'aide du pool de connexion de la base de données Druid. Le contenu spécifique est le suivant
Dans le projet Springboot, ajoutez les dépendances suivantes
<! - Spring Mybatis -> <dependency> <proupId> org.mybatis.spring.boot </proupId> <artifactive> mybatis-spring-boot-starter </ artifactid> <version> 1.1.1 </ version> </ Dependency> <! - MySQL -> <Dedency> <GroupId> MySQL </ GroupID> <ArtefactId> MySQL-Connector-Java </Retifactid> <POPE> Runtime </cope> </Dependency> <! - Druid Database Connection Pool -> <Dedency> <proupId> com.alibaba </prouprid> <aRtifactid> Druid </ Artifactid> <version> 1.0.26 </DERNIERNATION> </DRROID>
Dans le répertoire des ressources, créez le fichier de configuration JDBC.Properties et ajoutez la configuration suivante
Configuration #database printemps.datasource.url = jdbc: mysql: //127.0.0.1: 3306 / test? useunicode = true & worseencoding = utf8 & usessl = falsspring.d atasource.username = adminspring.datasource.password = adminspring.datasource.driver-Class-name = com.mysql.jdbc.driver # Connection pool configuration# Initialize size, minimum, maximum spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # Configure the time to get the connection waiting timeout spring.datasource.maxWait=60000 # Configure how long it takes to perform a detection interval to detect idle connections that need to be closed, in milliseconds Spring.datasource.TimeBetweenEvictionRunsmillis = 60000 # Configurez le temps minimum pour survivre dans la piscine, en millisecondes Spring.Datasource.MinevictableIdleMemillis = 300000 # Test de la connexion est valide SQLSPRING. En postulant pour une connexion, si le temps d'inactivité est supérieur à ce que le temps entrevuevinsmillis, exécutez ValidationQuery pour détecter si la connexion est valide Spring.datasource.Test WhidreIdle = True # Lorsque vous demandez une connexion, exécutez la validation de marque pour détecter la connexion Valid Spring.Datasource printemps.datasource.testonreturn = false # # Pour activer PSCCACH, il doit être configuré pour être supérieur à 0. Lorsqu'il est supérieur à 0, les étapes de poolpredaked seront automatiquement déclenchées pour être truespring. Le plug-in d'extension est configuré par alias. Les plug-ins sont: # pour la surveillance des statistiques: stat # pour le filtre de journalisation: log4j # pour la défense contre l'injection SQL: wallspring.datasource.filters = stat, log4j, mur
Créez la classe de configuration de la source de données DataSourceConfig.java, le code est le suivant
package com.liao.mybatis; import com.alibaba.druid.pool.druiddatasource; import org.mybatis.spring.annotation.mapperscan; import org.slf4j.logger; import org.slf4j.loggerfactory; org.springframework.beans.factory.annotation.autowired; import org.springframework.beans.factory.annotation.value; import org.springframework.context.annotation.bean; import org.springframework.contex org.springframework.context.annotation.propertysource; import org.springframework.sterreotype.component; import javax.sql.datasource; import java.sql.sqlexception; / ** * source de données * * @author hongyangliao * @classname: daTasourceConfig * @Date 18-1-1-206 * / @ Configuration @ mapperscan ("com.liao. **. Dao") classe publique dataSourCeConfig {private static final logger = loggerfactory.getLogger (dataSourCeConFig.class); @Autowired Private JDBCCONFIG JDBCCONFIG; @Bean @primary // Dans la même DataSource, utilisez d'abord la dataSource de données annotée DataSource DataSource () {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.settimebetweenvictionrunsmillis (jdbcconfig.gettimebetweenvictionrunsmillis ()); druiddatasource.setMinevictableIdleMemillis (jdbcconfig.getMineVictableIdleMemillis ()); druiddatasource.setValidationQuery (jdbcConfig.getValidationQuery ()); druiddatasource.setTest WhardIdle (jdbcconfig.isteSt Whemberdle ()); druiddatasource.setTestonBorrow (jdbcconfig.ISTestonBorrow ()); druiddatasource.setTestonreturn (jdbcconfig.isteStOnreturn ()); druiddatasource.setMaxPoolPreparedStatementPerConnectionsize (jdbcconfig.getMaxPoolPreparedStatementPerConnectionsize ()); essayez {druiddatasource.setFilters (jdbcconfig.getFilters ()); } catch (sqlexception e) {if (logger.isinfoenabled ()) {logger.info (e.getMessage (), e); }} return druidDataSource; } / ** * JDBC Classe de configuration * * @author hongyangliao * @classname: jdbcConfig * @date 18-1-2 9:00 PM * / @propertysource (valeur = "classe classpath: jdbc.properties") @component public static class jdbcConfig {/ ** * database username *! @Value ("$ {printemps.datasource.username}") Private String Username; / ** * Nom du pilote * / @Value ("$ {printemps.datasource.driver-Class-Name}") Private String DriverClass; / ** * URL de connexion de la base de données * / @value ("$ {printemps.datasource.url}") URL de chaîne privée; / ** * Taille d'initialisation du pool de connexion de la base de données * / @value ("$ {printemps.datasource.initialSize}") private int initialSize; / ** * Nombre minimum de connexions dans le pool de connexions de base de données * / @Value ("$ {printemps.datasource.minidle}") private int MinIdle; / ** * Nombre maximum de connexions dans le pool de connexions de base de données * / @value ("$ {printemps.datasource.maxactive}") private int maxactive; / ** * Obtenez l'heure du moment où la connexion attend le délai d'expiration * / @Value ("$ {printemps.datasource.maxwait}") privé long maxwait; / ** * À quelle fréquence détecter * / @value ("$ {printemps.datasource.TimeBetweenEvictionRunsmillis}") privé longuement de temps. / ** * Temps minimum pour une connexion pour survivre dans la piscine * / @Value ("$ {printemps.datasource.minevictableIdleMemillis}") private Long MinevictableIdleMemillis; / ** * SQL pour tester si la connexion est valide * / @value ("$ {printemps.datasource.validationQuery}") Private String ValidationQuery; / ** * Lorsque vous demandez une connexion, si le temps inactif est supérieur à TimeBetweenEvictionRunsmillis, vérifiez si la connexion est valide * / @Value ("$ {printemps.datasource.test WhileIdle}") Test de boolean privé WhileIdle; / ** * Lorsque vous demandez une connexion, vérifiez si la connexion est valide * / @value ("$ {printemps.datasource.testonBorrow}") Boolean TestOnBorrow privé; / ** * Lors du retour de la connexion, vérifiez si la connexion est valide * / @value ("$ {printemps.datasource.testonreturn}") Boolean Private Testonreturn; / ** * pscache size * / @value ("$ {printemps.datasource.maxpoolPreparedStatementPerConnectionsize}") private int maxpoolPreparedStatementPerConnectionsize; / ** * Configurez le plugin d'extension par alias * / @value ("$ {printemps.datasource.filters}") Filtres de chaîne privés; public String getUserName () {return username; } public void setUsername (String username) {this.userName = username; } public String getDriverClass () {return DriverClass; } 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 mot de passe; } public void setPassword (String Motword) {this.password = mot de passe; } public int getInitialSize () {return initialSize; } public void SetInitialSize (int initialSize) {this.InitialSize = 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 (long maxwait) {this.maxwait = maxwait; } public long gettimebetweenvictionrunsmillis () {return timebetweenEvictionRunsmillis; } public void settimebetweenvictionrunsmillis (longue durée entrevue-paramètre) {this.timebetweenvictionrunsmillis = timebetweenvictionrunsmillis; } public long getMineVictableIdleMemillis () {return minevictableIdleMemillis; } public void setMineVictableIdleMemillis (long minevictableidletimemillis) {this.minevictableidlememillis = minevictableidlememillis; } public String getValidationQuery () {return validationQuery; } public void setValidationQuery (String ValidationQuery) {this.validationQuery = ValidationQuery; } public boolean isTest WhileIdle () {return Test Whendle; } public void Settest WhileIdle (Boolean Test WhileIdle) {this.test WhileIdle = Test WhileIdle; } public boolean isTestonBorrow () {return testonBorrow; } public void SettestonBorrow (boolean testonBorrow) {this.testonborrow = testonBorrow; } public boolean isTestonreturn () {return testonreturn; } public void Settestonreturn (boolean testonreturn) {this.testonreturn = testonreturn; } public int getMaxPoolPreparedStatementPerConnectionsize () {return maxpoolPreparedStatementPerConnectionsize; } public void setMaxPoolPreparedStatementPerConnectionsize (int maxpoolPreparedStatementPerConnectionsize) {this.maxpoolPreparedStatementPerConnectionsize = maxpoolPreparedStatementPerConnectionSize; } public String getFilters () {return filtres; } public void setFilters (filtres de chaîne) {this.filters = filters; }}}Créer la classe de configuration d'usine de session SessionFactoryConfig.java, le code est le suivant
Package 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.springframeworkwork.Contex org.springframework.context.annotation.configuration; import org.springframework.core.io.classpathResource; import org.springframework.transaction.annotation.enableTransactionManagement; @ configuration @ eabletransactionManagement // a annotation Management, qui est équivalent à la méthode de configuration XMLICO <tx: annotation-dinde-dinsen, qui est équivalente à la méthode XMLIC de configuration XMLI /> classe publique SessionFactoryConfig {/ ** * Path de configuration MyBatis * / chaîne statique privée mybatis_config = "MyBatis-Config.xml"; @Autowired Private DataSource DataSource; / *** * Créer sqlSessionFactoryBean * et définir la configuration telle que la dénomination de camel. etc * Définir le chemin du mappage du mappeur * Définir la source de données de données de données * * @Title: CreateSQLSessionFactoryBean * @Author: Hongyangliao * @Date: 18-1-3 9:52 AM * @param * @return org.mybatis.spring.sqlSessionFactoryBean SqlSessionFactor "SQLSessionFactory") SQLSESSESSEFACToryBean public CreateSQSessionFactoryBean () lève IOException {SQLSessionFactoryBean SqlSessionFactory = new SQLSessionFactoryBean (); // Définir le chemin de numérisation de la configuration de MyBatis SqlSessionFactory.SetConfigLocation (new ClassPathResource (mybatis_config)); // Définir DataSource SQLSessionFactory.SetDataSource (DataSource); retour sqlSessionFactory; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.