この例では、Druid Database Connection Poolを使用してSpringbootをMyBatisと統合する方法を共有しています。特定のコンテンツは次のとおりです
スプリングブートプロジェクトでは、次の依存関係を追加します
<! - spring mybatis-> <dependency> groupid> org.mybatis.spring.boot.boot </groupid> <artifactid> mybatis-spring-boot-starter </artifactid> <バージョン> 1.1.1 </バージョン> </依存関係> <! <artifactid> mysql-connector-java </artifactid> <scope> runtime </scope> </dependency> <! - druid database接続プール - > <依存関係> groupid> com.alibaba </groupid> <artifactid> druid </artifactid> 1.0.26 </バージョン> <
リソースディレクトリで、jdbc.properties構成ファイルを作成し、次の構成を追加します
#database構成spring.datasource.url = jdbc:mysql://127.0.0.1:3306/test?useunicode = true&charaterencoding = 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.maxwait = 60000を構成する時間を設定spring.datasource.timebetweenevictionrunsmillis = 60000#プールで生き残るための最小時間を設定するspring.datasource.minevictableidletimemillis = 300000#接続が有効かどうかをテストしてください。接続の場合、アイドル時間が時間をtimeevictionrunsmillisよりも大きい場合、validationQueryを実行して接続が有効かどうかを検出してください。datasource.datasource.testhileidle= true#接続を申請するときに、接続が有効かどうかを検出するために検証クエリを実行するために、接続が有効かどうかを有効にするときに接続が有効かどうかを確認するときにfalseを有効にします。 spring.datasource.testonreturn = false#pscacheを有効にするには、0より大きくなるように構成する必要があります。0より大きい場合、poolpreparedStatementsは自動的にトリガーされます。拡張プラグインはエイリアスで構成されています。一般的なプラグインは次のとおりです。#監視統計:統計:ロギングフィルターの統計#log4j#sqlインジェクションに対する防御用:wallspring.datasource.filters = stat、log4j、wall
データソース構成クラスDataSourceConfig.javaを作成すると、コードは次のとおりです
パッケージ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.annot.hut. org.springframework.factory.annotation.value; import org.springframework.context.annotation.bean; Import org.springframework.context.annotation.configuration; Import org.springframework.context.annotation.pontorse; importframeworke javax.sql.datasource; import java.sql.sqlexception;/** * data source * * @author hongyangliao * @classname:datasourceconfig * @date 18-1-2 8:56 pm */ @ @configuration @mapperscan(com.liao。**。 logger = loggerfactory.getLogger(dataSourceconfig.class); @autowired private jdbcconfig jdbcconfig; @bean @primary //同じDataSourceで、最初に注釈付き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.setMaxactive(jdbcconfig.getMaxactive()); druiddatasource.settimebetweenevictionrunsmillis(jdbcconfig.getTimeBetInevictionRunsMillis()); druiddatasource.setMinevictableIdletimemillis(jdbcconfig.getMinevictableIdletimemillis()); Druiddatasource.setValidationQuery(jdbcconfig.getValidationQuery()); druiddatasource.settestwhileidle(jdbcconfig.istestwhileidle()); druiddatasource.settestonborrow(jdbcconfig.istestonborrow()); druiddatasource.settestonreturn(jdbcconfig.istestonreturn()); druiddatasource.setmaxpoolpreparedStatementperconnectionSize(jdbcconfig.getMaxpoolpreparedStateperconnectionSize()); try {druiddatasource.setfilters(jdbcconfig.getFilters()); } catch(sqlexception e){if(logger.isinfoenabled()){ogger.info(e.getmessage()、e); }} druiddatasourceを返します。 } /** * jdbc configuration class * * @author hongyangliao * @classname:jdbcconfig * @date 18-1-2 9:00 pm * /@propertysource(value = "classpath:" classpath:jdbc.properties ") @value( "$ {spring.datasource.username}")private string username; / ***ドライバー名*/ @value( "$ {spring.datasource.driver-class-name}")private string driverclass; / ** *データベース接続url */ @value( "$ {spring.datasource.url}")private string url; / ***データベース接続プール初期化サイズ*/ @value( "$ {spring.datasource.initialsize}")private int hiantsize; / ***データベース接続の接続の最小数プール*/ @value( "$ {spring.datasource.minidle}")private int minidle; / ***データベース接続の接続の最大数プール*/ @value( "$ {spring.datasource.maxactive}")private int maxactive; / ***接続がタイムアウトを待つ時間を取得*/ @value( "$ {spring.datasource.maxwait}")private long maxwait; / ***/ @value( "$ {spring.datasource.timebetweenevictionrunsmillis}")private long timebethevevictionrunsmillis; / ***プールで生存する接続の最小時間/ ** * sql接続が有効かどうかをテストする */ @value( "$ {spring.datasource.validationQuery}")private string balidationquery; / ** *接続を申請する場合、アイドル時間が時間を獲得した場合、接続時間が大きい場合、接続が有効かどうかを確認します */ @value( "$ {spring.datasource.testhiledle}")private boolean testhiledle; / ** *接続を申請する場合、接続が有効かどうかを確認します */ @value( "$ {spring.datasource.testonborrow}")private boolean testonborrow; / ** *接続を返すときは、接続が有効かどうかを確認します */ @value( "$ {spring.datasource.testonreturn}")private boolean testonreturn; / *** pscache size*/ @value( "$ {spring.datasource.maxpoolpreparedstatementperconnectionsize}")private int maxpoolpreparedstatementperconnectionsize; / ***エイリアスによって拡張プラグインを構成*/ @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(){パスワードを返します。 } public void setPassword(string password){this.password = password; } public int getInitialSize(){return Iniversize; } public void setInitialSize(int Iniverysize){this.InitialSize = IniverySize; } 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 getTimeBetInevictionRunsMillis(){return timevetweenvictionrunsmillis; } public void setimeBetwetInevictionRunsMillis(長い間evictionRunsMillis){this.timeBethictionRunsMillis = timeBethevevictionRunsMillis; } public long getMineVictableIdletimemillis(){return minevictableidletimemillis; } public void setMinevictableidletimemillis(long meinvictableidletimemillis){this.minevictableidletimemillis = minevictableidletimemillis; } public string getValidationQuery(){return validationQuery; } public void setValidationQuery(String ValidationQuery){this.validationQuery = validationQuery; } public boolean iStesthiledle(){return testwhileidle; } public void settest whileidle(boolean testhileidle){this.testhileidle = testhileidle; } public boolean istestonborrow(){testonborrowを返します。 } public void setestestonborrow(boolean testonborrow){this.testonborrow = testonborrow; } public boolean istestonreturn(){return testonreturn; } public void settestonreturn(boolean testonreturn){this.testonreturn = testonreturn; } public int getMaxPoolPreparedStatementPerConnectionSize(){return maxpoolpreparedStateperConnectionSize; } public void setMaxpoolpreparedStatementperConnectionSize(int maxpoolpreparedStatementperconnectionSize){this.maxpoolpreparedStateperconnectionSize = maxpoolpreparedStatementementementementementementementementementementementementementementementementementsize; } public string getFilters(){return filters; } public void setFilters(string filters){this.filters = filters; }}}セッションファクトリ構成クラスSESSIONFactoryConfig.javaを作成すると、コードは次のとおりです
パッケージcom.liao.mybatis; import java.io.ioexception; Import javax.sql.datasource; import org.mybatis.spring.sqlsessionfactorybean; Import org.springframework.beans.wercory.annotation.autowired; Importframework.contextation org.springframework.context.annotation.configuration; import org.springframework.core.classpathresource; Import org.springframework.annotation.enabletransactionmanagement;@configuration@enabletransactionmanagement // /> public class sessionfactoryconfig { /** * mybatis構成パス * /private static string mybatis_config = "mybatis-config.xml"; @autowired private dataSource DataSource; /**** sqlsessionfactorybean*を作成し、キャメルネーミングなどの設定を設定します。など *マッパーマッピングパスの設定 *データソースデータソースを設定 * * @title:createsqlsessionfactorybean * @author:hongyangliao * @date:18-1-3 9:52 am * @return org.mybatis.spring.splsessionfactorybean sqlsessionfactorybean */ @throws */ @bean "sqlsessionFactory")public sqlsessionfactorybean createsqlsessionfactorybean()throws ioexception {sqlsessionfactorybean sqlsessionfactory = new sqlsessionfactorybean(); // mybatis構成スキャンパスsqlsessionfactory.setConfiglocation(new ClassPathResource(mybatis_config)); // set dataSource sqlsessionfactory.setDataSource(dataSource); sqlsessionFactoryを返します。 }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。