簡単な紹介
この記事ではSpringBoot統合MyBatisの、アリババのドルイドを使用して、データベース接続プールを紹介します。フレームワークお忍びSpringBootは、SQLにファイルを書き込むことができますが統合されたmybaitsのXMLの使用をサポートしていませんが、また達成するために使用することができるXML構成XML SQLに慣れ。具体的な方法は、フレームワークの動作のために、主に再構築するために、重要ではありません何の実現が比較的明確です。このブログは仕方をコメントしていない、書き込みのXMLのSQL MyBatisのを達成するための方法です。
ポンポン設定ファイル
<?xml version = "1.0"エンコード= "UTF-8"?> <プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0"のxmlnsを:XSI = "のhttp://www.w3 .ORG / 2001 / XMLスキーマ・インスタンス」 のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> 4.0.0 </ modelVersion> <親> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータ親</たartifactId> <バージョン> 2.2.0.RELEASE </バージョン> <relativePath /> <! -ルックアップ親リポジトリから- > </親> <groupIdを> com.meng </ groupIdを> <たartifactId>デモ</たartifactId> <バージョン> 0.0.1-SNAPSHOT </バージョン> <名前> db_demo </名前> 春ブーツのための<説明>デモプロジェクト</記述> <プロパティ> <のjava.version> 1.8 </java.version> </プロパティ> <依存性> <依存> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>ばねブートスタータデータJPA </たartifactId> </依存> <依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータウェブ</たartifactId> </依存関係> <依存> <groupIdを> org.springframework.boot </ groupIdを> <依存> <たartifactId>春・ブート・スターター-JDBC </たartifactId> </依存> <groupIdを> log4jの</ groupIdを> <のgroupId> org.mybatis.spring.boot </のgroupId> <たartifactId> MyBatisのスプリングブートスタータ</たartifactId> <バージョン> 2.1.1 </バージョン> </依存> <依存性> <のgroupId> MySQLの< /のgroupId> <たartifactId>のmysql-コネクタ-javaの</たartifactId> <スコープ>ランタイム</スコープ> </依存関係> <! -自定义连接池- > <依存> <groupIdを> com.alibaba </ groupIdを> <たartifactId>ドルイド</たartifactId> <バージョン> 1.1.10 </バージョン> </依存関係> <依存> <たartifactId> log4jの</たartifactId> <バージョン> 1.2.17 </バージョン> </依存> <依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータ試験</たartifactId > <スコープ>テスト</スコープ> <除外> <除外> <のgroupId> org.junit.vintage </のgroupId> <たartifactId> JUnitのヴィンテージエンジン</たartifactId> </除外> </除外> </依存> </依存関係> <ビルド> <プラグイン> <プラグインを> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>春・ブートのmaven-pluginの</たartifactId> </プラグイン> </プラグイン> </構築> </プロジェクト>
SpringBootプロフィール
春: データソース: ユーザ名:ルート パスワード:123456 URL:JDBC:MySQLの://192.168.0.157:3306 / DB1の ドライバクラス名:com.mysql.cj.jdbc.Driver タイプ:com.alibaba.druid.pool。 DruidDataSourceの #データソース他の構成 #初期サイズ、最小値、最大 INITIALSIZE :. 5 minIdle :. 5 MAXACTIVE用:20である タイムアウト時間待って接続取得#構成 MAXWAIT:60000の #間隔そのような検出の頻度を、検出部、アイドル状態の接続を閉じるために必要ミリ秒 timeBetweenEvictionRunsMillis:60000の #は最小接続時間生存プールミリ秒に設定 minEvictableIdleTimeMillisを:300000 validationQuery:SELECT FROM DUAL 1。 testWhileIdle:trueに testOnBorrow:falseに testOnReturn:偽 poolPreparedStatements:trueに #監視統計には、ファイアウォールのためではない統計情報の監視インタフェースSQLを除去した後、 '壁'、フィルタを傍受設定する フィルタ:STAT、ウォール、log4jの maxPoolPreparedStatementPerConnectionSize:20 useGlobalDataSourceStat:trueに て、ConnectionProperties:druid.stat.mergeSql = trueに、ドルイドを。 = 500 stat.slowSqlMillis MyBatisの: コンフィグ-LOCATION:CLASSPATH:MyBatisの/ MyBatisの-のconfig.xml マッパー-場所:CLASSPATH:MyBatisの/マッパー/ * XML。
そして、エンティティクラスの実装プロセスの作成を開始
パッケージの作成:エンティティ、マッパー、コントローラを。SQL文を書くためのリソースマッピングの下にフォルダを作成しても、マッパーのjavaファイルに直接書き込むことができ、直接以下のコードを貼り付け
応用
@MapperScan( "com.meng.demo.mapper")//走査経路次のインターフェイス @SpringBootApplication パブリッククラスDbDemoApplication { パブリック静的無効メイン(文字列[] args){ SpringApplication.run(DbDemoApplication.class、引数); } }
JavaBeanオブジェクト
パブリッククラスEmployeePO { プライベート整数ID。 プライベート文字列lastNameの。 プライベート文字列電子メール; プライベート整数性別; プライベート整数D_ID。
マッパー
インタフェースEmployeeMapper {公共 公共EmployeePO getById(ID整数); //クエリID 公共ボイドINSERT(EmployeePO employeePO); //追加 }
コントローラ
@RestController パブリッククラスDemoController { @Autowired EmployeeMapper employeeMapper。 ( "/ EMP / {ID}")@GetMapping 公共EmployeePO getEmp(@PathVariable( "ID")、整数ID){ (ID)employeeMapper.getByIdを返します。 } @GetMapping( "/ EMP") パブリックEmployeePOインセット(EmployeePO employeePO){ employeeMapper.insert(employeePO)。 employeePOを返します。 } }
Mapper.xmlプロフィール
<?xml version = "1.0"エンコード= "UTF-8"?> <DOCTYPEマッパーPUBLIC! " - // mybatis.org//DTDマッパー3.0 // EN"「http://mybatis.org/dtd/mybatis -3- mapper.dtd "> <マッパー名前空間=" com.meng.demo.mapper.EmployeeMapper "> <SELECT ID =" getById」resultTypeと= "com.meng.demo.entity.EmployeePO"> SELECT * FROM従業員 WHERE a.id =#{ID} </選択> <挿入ID = "挿入" keyProperty = "ID" useGeneratedKeys = "真"> 従業員(lastNameの、電子メール、性別、D_ID)に挿入 値(#{lastNameの}、#{メール}、#{性別}、{#D_ID}) </インサート> </マッパー>
MyBatisの-config.xml構成ファイル
<?xml version = "1.0"エンコード= "UTF-8"?> <DOCTYPE設定! PUBLIC " - // mybatis.org//DTDコンフィグ3.0 // EN" 「http://mybatis.org/dtd/mybatis -3- config.dtd "> <設定> <設定> <設定名=" mapUnderscoreToCamelCase」値= "true"を/> <! -驼峰命名- > </設定> </ configuration>の
最終的なアーキテクチャ
最後のテスト開始
ブラウザでは、次のように入力しますHTTPを:// localhostを:?8080 / EMP lastName=%E6%B5%8B%E8%AF%9505&[email protected]&gender=10&d_id=1は、 行を挿入します
ブラウザでは、次のように入力しますHTTPを:// localhostを:8080 / EMP / 5 クエリのデータを