Este exemplo compartilha com você o método de integrar o SpringBoot com o MyBatis usando o Druid Bathabase Connection Pool. O conteúdo específico é o seguinte
No projeto Springboot, adicione as seguintes dependências
<!-Spring mybatis-> <pendency> <puperid> org.mybatis.spring.boot </foupid> <stifactId> mybatis-spring-boot-starter </sartifactid> <versão 1.1.1 </sipers> </dependência> <!-mySql-> <Persity> <Prience> <Prience> <Persy> 1.1.1.1 </siers> </dependency> <!-MySql-> <Persity> <PrinceId> <PreeNID> <PRESS> <PERSCELHE> 1.1.1.1 </versão> </dependência </ArtifactId> MySQL-Connector-Java </ArtifactId> <cope> Runtime </cope> </dependency> <!-DRUID Banco de dados Pool de conexão-> <pendence> </GroupId> COM.alibaba </frupid> <TarifactId> druid </stifactId> <ersipers> 1.0.2 </frupid>
No diretório de recursos, crie o arquivo de configuração JDBC.Properties e adicione a seguinte configuração
#Database Configuração spring.dataSource.url = jdbc: mysql: //127.0.0.1: 3306/teste? useunicode = true & caracteryncoding = utf8 & usessl = falsspring.d atasource.username = Adminspring.dataSource.password = Adminspring.datasource.driver-class-name = com.mysql.jdbc.driver# Configuração do pool de conexão # Inicialize tamanho, mínimo, mola máxima.dataSource.initialSize = 5 spring.dataSource.Minidle = 5 spring.dataSource.maxactive = 20 # Configure o tempo para obter a conexão com o tempo de espera para realizar o tempo limite. MillisEconds Spring.dataSource.TimeBetweenEvictionRunsmillis = 60000# Configure o tempo mínimo para sobreviver na piscina, em milissegundos spring.dataSource.mineVictableIdLetimEmillis = 300000# teste se a conexão é válida. e verifique se a segurança ao solicitar uma conexão, se o tempo de marcha lenta for maior que a TimeBetweenEvictionRunsmillis, execute a ValidationQuery para detectar se a conexão é válida spring.dataSource.testwhileidle = true# Ao se candidatar a uma conexão, execute a validação para detectar se a conexão é válida. A conexão é válida spring.dataSource.testonReturn = false# Para ativar o pscache, deve ser configurado para ser maior que 0. Quando for maior que 0, as estateiras de piscina serão acionadas automaticamente para serem as mole. O plug-in de extensão é configurado por alias. Os plug-ins comuns são:# para monitoramento estatísticas: stat# para filtro de login: log4j# para defesa contra o SQL Injeção: wallspring.dataSource.filters = stat, log4j, parede
Crie a classe de configuração da fonte de dados DataSourceConfig.java, o código é o seguinte
pacote com.liao.mybatis; import com.alibaba.druid.pool.druiddataSource; importar org.mybatis.spring.annotation.mapperscan; importação de °.slf4j.logger; importação; org.springframework.beans.factory.annotation.value; importar org.springframework.context.annotation.bean; importar org.springframework.context.annotation.configuration; import org.springframeworks.Context.Anatation.Configuration; Importtemorn; javax.sql.dataSource; importar java.sql.sqLexception;/** * fonte de dados * * @author hongyangliao * @className: datasourceConfig * @date 18-1-2 20:56 */ @sfiguration @mapperscan ("com.lia. Logger = LoggerFactory.getLogger (DataSourceConfig.class); @AUTOWIRED PRIVADO JDBCCONFIG JDBCCONFIG; @Bean @Primary // No mesmo DataSource, primeiro use o DataSource de DataSource anotado 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.setTimeBetweenEvictionRunsmillis (jdbcconfig.gettimebetweenEvictionRunsmillis ()); druiddataSource.SetMineVictableIdLeTimemillis (jdbcconfig.getMineVictableIdLeTimemillis ()); druiddatasource.setValidationQuery (jdbcconfig.getValidationQuery ()); druiddatasource.setTestwhileIdle (jdbcconfig.istestwhileidle ()); druiddataSource.setTestonBorrow (jdbcconfig.istestonborrow ()); druiddataSource.setTestOnReturn (jdbcconfig.istestOnReturn ()); druiddataSource.setMaxPoolPreparedStatementPerConnectionsize (jdbcconfig.getMaxPoolPreparedStatementPerConnectionsize ()); tente {druiddataSource.setFilters (jdbcconfig.getFilters ()); } catch (sqLexception e) {if (logger.isinfoEnabled ()) {Logger.info (e.getMessage (), e); }} retornar druidDatasource; } /** * JDBC Configuration Class * * @Author Hongyangliao * @className: JDBCCONFIG * @DATE 18-1-2 21:00 * /@PropertySource (Value = "Classpath: JDBC.Properties") @ComPoNTEN STATIC CLASS @Value ("$ {spring.datasource.username}") private string userName; / *** Nome do driver*/ @Value ("$ {spring.dataSource.driver-class-name}") private string driverclass; / ** * URL de conexão com o banco de dados */ @Value ("$ {spring.datasource.url}") private string url; / *** Tamanho da inicialização do pool de conexão do banco de dados*/ @Value ("$ {spring.datasource.initialsize}") private int InitialSize; / *** Número mínimo de conexões no pool de conexão do banco de dados*/ @Value ("$ {spring.datasource.minidle}") private int minidle; / *** Número máximo de conexões no pool de conexão do banco de dados*/ @Value ("$ {spring.datasource.maxactive}") private int maxactive; / *** Obtenha o tempo em que a conexão aguarda o tempo limite*/ @Value ("$ {spring.datasource.maxwait}") privado maxwait longo; / *** Com que frequência detectar*/ @Value ("$ {spring.datasource.TimeBerendEvictionRunsmillis}") privado longo tempo de longa data eVictionRunsmillis; / *** Tempo mínimo para uma conexão sobreviver na piscina*/ @Value ("$ {spring.datasource.minevictableIdletimemillis}") private longo minevictableItleTimemillis; / ** * SQL para testar se a conexão é válida */ @value ("$ {spring.datasource.validationQuery}") private String validationQuery; / ** * Ao se candidatar a uma conexão, se o tempo de marcha lenta for maior que o TimebetweenEvictionRunsmillis, verifique se a conexão é válida */ @Value ("$ {spring.datasource.testwhileidle}") private boolean testwhileidle; / ** * Ao solicitar uma conexão, verifique se a conexão é válida */ @Value ("$ {spring.datasource.testonborrow}") private boolean testonborrow; / ** * Ao retornar a conexão, verifique se a conexão é válida */ @Value ("$ {spring.dataSource.testoNreturn}") private boolean testOnReturn; / *** tamanho do pscache*/ @Value ("$ {spring.dataSource.maxpoolPreparedStatementPerConnectionsize}") private int maxpoolPreparedStatementPerConnectionsize; / ***Configure o plugin de extensão por Alias*/ @Value ("$ {spring.datasource.filters}") filtros de sequência privada; public String getUserName () {return Username; } public void setUserName (string userName) {this.username = nome de usuário; } 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 senha; } public void setPassword (string senha) {this.password = senha; } 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 gettimeBetweenEvictionRunsmillis () {return timebetweenEvictionRunsmillis; } public void SettimeBetweenEvictionRunsMillis (tempo de longa data de TweenEvictionRunsmillis) {this.TimeBetweenEvictionRunsmillis = timebetweenEvictionRunsmillis; } public long getMineVictableIdLetimEmillis () {return mineVictableIdLetimEmillis; } public void setMineVictableIdLeTimemillis (MineVictableIdLetimillis) {this.mineVictableIdletimemillis = mineVictableIdLetimEmillis; } public string getValidationQuery () {return validationQuery; } public void SetValidationQuery (String validationQuery) {this.validationQuery = validationQuery; } public boolean IstestwhileIdle () {return testhileidle; } public void SettStestwhileIdle (boolean testhileidle) {this.testwhileidle = testhileidle; } 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 maxPoolPreparedStatementConnectionsize) {this.MaxPoolPreparedStatementPerConnectionsize = maxpoolPreparedStatementPonnectionsize; } public String getFilters () {retornar filtros; } public void setFilters (String filters) {this.filters = filters; }}}Criar classe de configuração de fábrica de sessão sessionfactoryconfig.java, o código é o seguinte
pacote com.liao.mybatis; importar java.io.ioException; importar javax.sql.dataSource; importar org.mybatis.spring.sqlsessfactoryBean; importação org.springframework.beans.annotation.autowired; importação org.springframework.beanS.AnTation.autowired; importação; org.springframework.context.annotation.configuration; importar org.springframework.core.io.classPathResource; importar org.springframework.transaction.Annotation.enableTransactionManagement;@configuration@inabletraturation the alabonagem // inability <tx: anotação-driven /> public class SessionFactoryConfig { /** * Caminho de configuração mybatis * /string estática privada mybatis_config = "mybatis-config.xml"; @Autowired Private DataSource DataSource; /**** Crie SQLSessionFactoryBean* e defina a configuração como a nomeação de camelos. 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 () lança IoException {SQLSessionFactoryBean SQLSessionFactory = novo SQLSessionFactoryBean (); // Defina o caminho da varredura de configuração mybatis sqlsessionFactory.SetConfigLocation (novo ClassPathResource (mybatis_config)); // Definir DataSource SQLSessionFactory.SetDataSource (DataSource); retornar SQLSessionFactory; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.