Этот пример делится с вами методом интеграции Springboot с Mybatis с использованием пула соединений базы данных Druid. Конкретный контент заключается в следующем
В проекте Springboot добавьте следующие зависимости
<!-Spring Mybatis-> <dependency> <groupid> org.mybatis.spring.boot </groupid> <artifactid> mybatis-spring-boot-starter </artifactid> <serview> 1.1.1 </version> </vedyse> <!-mysql-> <Depoydency> <groupid> mySql> <! <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- druid database connection pool--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version> </dependency>
В каталоге ресурсов создайте файл конфигурации JDBC.Properties и добавьте следующую конфигурацию
#Database Configuration spring.datasource.url = jdbc: mysql: //127.0.0.1: 3306/test? useUnicode = true & haremencoding = utf8 & usessl = falsspring.d atasource.username = adminspring.datasource.password = adminspring.datasource.driver-class-name = com.mysql.jdbc.driver# Конфигурация пула соединений # инициализируйте размер, минимум, максимальный spring.datasource.initialsize = 5 spring.datasource.minidle = 5 spring.datasource.maxactive = 20 # Настройка времени, чтобы получить время ожидания подключения. spring.datasource.timebeweevictionrunsmillis = 60000# Настройка минимального времени для выживания в пуле, в миллисекундах Spring.datasource.minevictableIdletImeMillis = 300000# тест, является ли соединение действительным SqlSpring. Подача заявки на соединение, если время простоя выше, чем время, проведенное временем. spring.datasource.testonreturn = false# Чтобы включить pscache, он должен быть настроен как больше 0. Когда он больше 0, пул. Плагин расширения настроен псевдонимом. Общие плагины:# Для мониторинга статистики: stat# для журнала фильтра: log4j# для защиты от SQL-инъекции: wallspring.datasource.filters = stat, log4j, стена
Создать конфигурацию источника данных класс DataSourceConfig.java, код следующим образом
пакет com.liao.mybatis; import com.alibaba.druid.pool.druiddatasource; import org.mybatis.spring.annotation.mapperscan; импорт org.slf4j.logger; import.slf4j.loggerfactory; импорт org.spramework.bean.annatory.annatory.annatory.Annatory.Annatory.Annatory. org.springframework.beans.factory.annotation.value; import org.springframework.context.annotation.bean; импорт org.springframework.context.annotation.configuration; импорт org.springframework.context.annotation.propertysource; импорт org.spramework.sternation.annotation.propertysource; javax.sql.datasource; import java.sql.sqlexception;/** * Источник данных * * @author hongyangliao * @classname: dataSourceConfig * @Date 18-1-2 8:56 PM */ @configururation @mapperscan ("com.liao. **. logger = loggerFactory.getLogger (dataSourceConfig.class); @Autowired private jdbcconfig jdbcconfig; @Bean @primary // В том же данных сначала используйте аннотированный данных DataSource Public 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.setmaCactaction (jdbcconfig.getmaCactaction ()); druiddatasource.settimebetweeEvictionRunsmillis (jdbcconfig.gettimebetweeVictionRunsmillis ()); druiddatasource.setminevictableIdletImeMillis (jdbcconfig.getmineVictableIdletImeMillis ()); druiddatasource.setvalidationQuery (jdbcconfig.getValidationQuery ()); druiddatasource.settestwhileIdle (jdbcconfig.isteSteStle ()); druiddatasource.settestonbourrow (jdbcconfig.istestonborrow ()); druiddatasource.settestonreturn (jdbcconfig.istestonreturn ()); druiddatasource.setmaxpoolpreparedStatementPerConcectionize (jdbcconfig.getmaxpoolpreparedStatementPerconcectionsize ()); try {druiddatasource.setfilters (jdbcconfig.getfilters ()); } catch (sqlexception e) {if (logger.isinfoenabled ()) {logger.info (e.getmessage (), e); }} return druiddatasource; } /** * jdbc configuration class * * @author hongyangliao * @classname: jdbcconfig * @date 18-1-2 9:00 вечера * /@propertysource (value = "classpath: jdbc.properties") @component public State Class jdbcconfig { /** databas @Value ("$ {Spring.datasource.username}") частная строка; / **! / ** * URL подключения к базе данных */ @Value ("$ {Spring.Datasource.url}") Private String 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.TimeWeeWeeVictionRunsmillis}") частное долгое время, которое в течение длительного времени / *** Минимальное время для подключения к выживанию в бассейне*/ @Value ("$ {Spring.Datasource.minevictableIdletimemilis}") Private LongVictableIdleMemillis; / ** * SQL, чтобы проверить, является ли соединение действительным */ @Value ("$ {spring.datasource.validationQuery}") private String ValidationQuery; / ** * При подаче заявки на подключение, если время холостого хода больше, чем время, проведенное в течение времени, проверьте, является ли соединение действительным */ @Value ("$ {Spring.DataSource.testWhileIdle}") частное логическое тестирование / ** * При подаче заявки на подключение проверьте, является ли соединение действительным */ @Value ("$ {Spring.Datasource.testonBorrow}") Private Boolean TestonBorrow; / ** * При возврате подключения проверьте, является ли соединение действительным */ @Value ("$ {Spring.Datasource.testonReturn}") Private Boolean TestonReturn; / *** pscache size*/ @value ("$ {spring.datasource.maxpoolpreparedStatementPerconceize}") private int maxpoolpreparedStatementConnectionsize; / ***Настройте плагин расширения под псевдонимом*/ @value ("$ {spring.datasource.filters}") частные строковые фильтры; 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 пароль; } public void setPassword (String password) {this.password = password; } public int getInitialSize () {return initialSize; } public void setInitialSize (int инициализируется) {this.ItialSize = инициализ; } public int getMinidle () {return minidle; } public void setMinidle (int minidle) {this.minidle = minidle; } public int getmaCactact () {return maxactive; } public void setmaCactive (int maxactive) {this.maxactive = maxactive; } public long getMaxWait () {return maxwait; } public void setMaxWait (long maxwait) {this.maxwait = maxwait; } public long getTimeWeeWeeVictionRunsmillis () {return TimeBowneEvictionRunsmillis; } public void settimeweeWeevictionRunsmillis (давняя времени, которую проводятся в течение времени, эвоян } public long getMineVictableIdletImeMillis () {return mineVictableIdleTimeMillis; } public void setmineVictableIdletImeMillis (long minevictableIdletImeMillis) {this.minevictableIdleTimeMillis = mineVictableIdleMemillis; } public String getValidationQuery () {return validationQuery; } public void setValidationQuery (string valyationQuery) {this.validationQuery = valistingQuery; } public boolean isTestWhileIdle () {return TestWhileIdle; } public void setteStestWhileIdle (логическое испытание, которое может быть } public boolean istestonborrow () {return testonborrow; } public void setteStonBorrow (Boolean TestonBorrow) {this.TestonBorrow = testonBorrow; } public boolean isTestonReturn () {return testonReturn; } public void setteStonReturn (Boolean TestonReturn) {this.TestonRepur = testonReturn; } public int getMaxPoolpReparedStatementPerconcectionize () {return maxpoolpreparedStatementPerConnectionsize; } public void setMaxPoolPReparEdStateMentPerConnectionsize (int maxpoolpreparedStatementPerconcectionsize) {this.maxpoolpReparedStateMentPerconctionsize = maxPoolPrepareDStateMentEmentConceize; } public String getFilters () {return Filters; } public void setFilters (String Filters) {this.filters = filters; }}}Создать сеанс заводской конфигурации класса сеансафакторияконфиг.java, код следующим образом
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.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.ClassPathResource;import org.springframework.transaction.annotation.EnableTransactionManagement;@Configuration@EnableTransactionManagement // Enable annotation transaction management, which is equivalent to the xml configuration method <tx:annotation-driven /> открытый класс SessionFactoryConfig { /** * PATY MyBatis * /частная статическая строка mybatis_config = "mybatis-config.xml"; @Autowired Private DataSource DataSource; /**** Создать SQLSessionFactoryBean* и установить настройку, такую как именование верблюда. и т. д. * Установите путь отображения Mapper * Установить источник данных данных * * * @title: createSqlSessionFactorybean * @author: hongyangliao * @date: 18-1-3 9:52 * @param * @return org.mybatis.spring.sqlsessionFactoryBeanbeanbeAnbeanbeanbean * @bring. "sqlSessionFactory") public sqlSessionFactorybean createSqlSessionFactoryBean () Throws ioException {sqlSessionFactorybean sqlSessionFactory = new sqlSessionFactoryBean (); // Установить путь конфигурации mybatis sqlSessionFactory.setConfiglocation (новый ClassPathresource (mybatis_config)); // Установить DataSource sqlSessionFactory.setDataSource (dataSource); return sqlSessionFactory; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.