Dieses Beispiel teilt Ihnen die Methode zur Integration von Springboot mit MyBatis mithilfe von Druid -Datenbankverbindungspool. Der spezifische Inhalt ist wie folgt
Fügen Sie im Springboot -Projekt die folgenden Abhängigkeiten hinzu
<!-Spring MyBatis-> <De vorstellen> <Groupid> org.mybatis.spring.boot </Groupid> <artifactId> mybatis-pring-boot-starter </artifactId> <version> 1.1.1 </Version> </abhängig> <! <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>
Erstellen Sie im Ressourcenverzeichnis die Konfigurationsdatei jdbc.properties und fügen Sie die folgende Konfiguration hinzu
#Database -Konfiguration Spring.DataSource.url = JDBC: MySQL: //127.0.0.1: 3306/test? useUnicode = true & charakteristisches Zeichnen = utf8 & uSessl = falsspring.d atasource.username = adminSpring.datasource.password = adminSpring.datasource.driver-Class-Name = com.mysql.jdbc.driver# Verbindungspool -Konfiguration # initialisieren Sie Größe, minimaler, maximaler Feder. 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 Wenn die Leerlaufzeit eine Verbindung beantragt, führen Sie die Validierungsquery aus, um festzustellen, ob die Verbindung gültig ist. DataSource. Spring.DataSource.TestonReturn = false# Um pScache zu aktivieren, muss es als 0,6 konfiguriert sein. Wenn es größer als 0 ist, werden poolpreparedStatements automatisch als truespring ausgelöst. Das Erweiterungs-Plug-In ist mit Alias konfiguriert. Häufige Plug-Ins sind:# für die Überwachung von Statistiken: STAT# zum Protokollierungsfilter: log4j# zur Verteidigung gegen SQL Injection: WallSpring.DataSource.Filters = Stat, Log4j, Wand
Erstellen Sie die Datenquellenkonfigurationsklasse DataSourceConfig.java, der Code ist wie folgt
Paket com.liao.mybatis; import com.alibaba.druid.pool.druiddatasource; import org.mybatis.spring.annotation org.springframework.beans.factory.annotation.autowired; import org.springframework.bean.factory.annotation.Value; import org.springFramework.context.annotation.bean; org.springframework.context.annotation.PropertySource;import org.springframework.stereotype.Component;import javax.sql.DataSource;import java.sql.SQLException;/** * Data Source* * @author hongyangliao * @ClassName: DataSourceConfig * @Date 18-1-2 8:56 PM*/@configuration@mapperscan ("com.liao. **. Dao") öffentliche Klassen -DataSourceConfig {private statische endgültige Logger logger = loggerfactory.getLogger (DataSourceConfig.class); @Autowired Private JDBCConfig JDBCCONfig; @Bean @Primary // Verwenden Sie in derselben DataSource zunächst die kommentierte DataSource Public DataSource DataSource () {druidDataSource dUidDataSource = 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.settestHeIdle (jdbcconfig.ISTestHoughIdle ()); druiddatasource.settestonborrow (jdbcconfig.istestonborrow ()); druiddatasource.settestonReturn (jdbcconfig.istestonReturn ()); druiddataSource.setMaxpoolProparedStatementPerConnectionSIZE (jdbcconfig.getMaxpoolpoolProparedStatementPerConnectionSize ()); try {druidDataSource.setFilters (jdbcconfig.getFilters ()); } catch (sqlexception e) {if (logger.issinfoenabled ()) {logger.info (e.getMessage (), e); }} return druidDataSource; } /** * JDBC-Konfigurationsklasse * * @Author Hongyangliao * @ClassName: Jdbcconfig * @date 18-1-2 9:00 Uhr * /@Propertysource (value = "classPath: jdbc.properties") @Component public static Class Jdbcconfig { /** ** ** * /**, { /**, { /**, {**, { /** **, {**, { /** **, { /** **, US-Ertername, { /** ** {**, {oder @Value ("$ {spring.datasource.username}") privater String -Benutzername; / *** Treibername*/ @Value ("$ {Spring.DataSource.Driver-Class-name}") private String-Treiberklasse; / ** * Datenbankverbindung URL */ @Value ("$ {Spring.DataSource.url}") private String url; / *** Datenbankverbindungspool -Initialisierungsgröße*/ @Value ("$ {Spring.DataSource.initialSize}") private init initialSize; / *** Mindestanzahl von Verbindungen im Datenbankverbindungspool*/ @Value ("$ {Spring.DataSource.minidle}") private int minidle; / *** Maximale Anzahl von Verbindungen im Datenbankverbindungspool*/ @Value ("$ {Spring.DataSource.maxActive}") private int maxActive; / *** Erhalten Sie die Zeit, in der die Verbindung auf Timeout wartet*/ @Value ("$ {Spring.DataSource.maxwait}") Private Long Maxwait; / *** Wie oft erkennen*/ @Value ("$ {Spring.DataSource.TimeBetweenevictionRunsmillis}") Private Long TimeBetweenevictionRunsmillis; / *** Mindestzeit für eine Verbindung, um im Pool zu überleben / ** * SQL, um zu testen, ob die Verbindung gültig ist / ** * Bei der Beantragung einer Verbindung, wenn die Leerlaufzeit größer ist als TimeBetweenevictionRunsmillis, prüfen Sie, ob die Verbindung gültig ist / ** * Bei der Beantragung einer Verbindung prüfen Sie, ob die Verbindung gültig ist / ** * Bei Rückgabe der Verbindung prüfen Sie, ob die Verbindung gültig ist / *** PSCache -Größe*/ @Value ("$ {Spring.DataSource.MaxpoolProparedStatementPerConnectionSize}") private int maxpoolpreparedStatementPerconectionSize; / ***Konfigurieren Sie das Erweiterungs -Plugin nach alias*/ @Value ("$ {Spring.DataSource.Filters}") Private String -Filter; public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } 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 () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; } public int getInitialSize () {return initialSize; } public void setInitialSize (init 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 (langer Maxwait) {this.maxwait = maxwait; } public Long GetTimeBetweenevictionRunsmillis () {return timeBetweenevictionRunsmillis; } public void setTimeBetweenevictionRunsmillis (Long TimeBetweenevictionRunsmillis) {this.TimeBetweenevictionRunsmillis = TimeBetweenevictionRunsmillis; } public Long GetMineVictableIdletImemillis () {return mineVictableIdletImemillis; } public void setMineVictableIdletImemillis (langminevictableIdletImemillis) {this.MinevictableIdletImemillis = mineVictableableIdletImemillis; } public String getValidationQuery () {return validationQuery; } public void setValidationQuery (String validationQuery) {this.ValidationQuery = validationQuery; } public boolean isestheIdle () {return test whileIdle; } public void Settodedle (boolean test whileIdle) {this.Testilidle = test theIdle; } public boolean isestonborrow () {return testonborrow; } public void Siedestonborrow (boolean testonborrow) {this.testonborrow = testonborrow; } public boolean isestonReturn () {return testonReturn; } public void settestonReturn (boolean testonReturn) {this.TestonReturn = testonReturn; } public int getmaxpoolPreparedStatementPerconectionSize () {return maxpoolpreparedStatementPerconctionSize; } public void setMaxpoolProparedStatementPerConnectionSize (int maxpoolProparedStatementPerConnectionSize) {this.maxpoolProparedStatementPerctionSizeSize = maxpoolPreparedStatementPercussize; } public String getFilters () {Rückgabefilter; } public void setFilters (String -Filter) {this.Filters = filter; }}}Erstellen von Sitzungsfabrikkonfiguration Klassenstunden
Paket com.liao.mybatis; import java.io.ioxception; import javax.sql.datasource; import org.mybatis.spring.sqlSessionFactoryBean; org.springFramework.context.annotation.configuration; import org.springframework.core.io.classpatheResource; <tx: Annotationsgetrieben /> öffentliche Klasse SessionFactoryConfig { /** * MyBatis-Konfigurationspfad * /private statische String mybatis_config = "mybatis-config.xml"; @Autowired Private DataSource -DataSource; /**** Erstellen Sie SQLSessionFactoryBean* und setzen Sie die Konfiguration wie das Kamelbenennen. etc * Set Mapper Mapping-Pfad * Setzen Sie die DataSource-Datenquelle * * @title: createsQlSessionFactoryBean * @Author: Hongyangliao * @date: 18-1-3 9:52 am * @param * @return org.mybatis.spring.SQLSSessionFactoryBean ( @ "SQLSessionFactory") public sqlSessionFactoryBean erzeugtesQlSessionFactoryBean () löst ioException {sqlSessionFactoryBean SQLSessionFactory = new SQLSessionFactoryBean () aus; // MyBatis Configuration Scan -Pfad SQLSessionFactory.setConfigLocation (neuer classpatResource (mybatis_config)) festlegen; // DataSource SQLSessionFactory.SetDataSource (DataSource) festlegen; return sqlSessionFactory; }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.