MyBatis-Plus
主要紀錄應用的方式,詳細內容我想別人寫的比我還要清楚,這邊就附上我學習時的網站
連結:Here
使用心得
支援 Lambda 表達式,應用各式查詢、修改等方法
支援 ActiveRecord 形式使用,僅需繼承 Model 就可以使用
自動注入基本 CURD
內建程式產生器(Service[impl]、Mapper[xml]、Entity....)
內建SQL效能分析插件(雖然3.5.2已移除,改用第三方工具(p6spy))
內建基於 Mybatis 物理分頁插件加以優化,使用更方便
更專心於業務邏輯程式開發
內建程式產生器
// 官方文件: https://baomidou.com/
// 數據源配置
final DataSourceConfig.Builder DATA_SOURCE_CONFIG =
new DataSourceConfig
.Builder("jdbc:mysql://localhost:3306/game_system", "root", "1qaz2wsx")
.typeConvert(new MySqlTypeConvert());
// 檔案輸出位置
final String outputDir = "./S_Core/src/test/java";
// table list
final List<String> tables = Arrays.asList("member_trans_log");
// 自動生成策略配置
FastAutoGenerator
.create("jdbc:mysql://localhost:3306/game_system", "root", "1qaz2wsx")
// .create(DATA_SOURCE_CONFIG) // 兩種方法都可以 使用 DataSourceConfig 可以有較彈性設定(Ex.選擇db種類)
.globalConfig(builder ->
builder.author("Caster") // 設定作者
.enableSwagger() // entity 補上 swagger annotation
.outputDir(outputDir) // 檔案輸出位置
.disableOpenDir() // 不打開 folder
.fileOverride() // 覆蓋文件 3.5.3 已棄用
.build())
.packageConfig(
builder ->
builder.parent("com.longxiang")
.xml("xml") // 預設會在 mapper.xml 重新配置位置.
.build())
.strategyConfig(
builder ->
builder.addInclude(tables)
.addTablePrefix("") // 設置過濾表前綴 ex. t_user -> "t_"
.controllerBuilder() // enable controller策略配置
.enableRestStyle() // 設置restful風格 => @RestController
.enableHyphenStyle() // url中駝峰轉連字符
.serviceBuilder()
.formatServiceFileName("%sService") // 取消 Service 前面的I
.entityBuilder()
.enableActiveRecord()
.enableLombok() // 啟用 lombok(getter & setter)
.enableChainModel() // 啟用 lombok鏈式操作 => @Accessors(chain = true)
.disableSerialVersionUID()
.build())
.templateConfig(
builder ->
builder.disable(TemplateType.CONTROLLER) // 禁用模板, 這樣就不會生成 controller.
.build())
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默認的是Velocity引擎模板
.execute(); //執行業務實戰應用
Select For Update
Update
第一種
第二種
Join Table 應用
第一種
第三種 -> 我自己用最多是這種
Join Table 應用
第一種
第二種
第三種 -使用 mybatis-plus-join
Join Table結論
使用 第一及第二種做法,還是擺脫不了自己撰寫SQL去實現Join的做法(若是有調整欄位,不容易在編譯期發現錯誤),若是使用第三種mybatis-plus-join套件,會大大減少撰寫SQL繁瑣問題,亦可避免調整欄位導致的錯誤皆可在編譯期就會發生錯誤,雖說會有一些學習成本但結果是美好的,值得花一些時間去嘗試了解。
效能分析工具
spy.properties
datasource connect settings
注意 p6spy 的配置
配置完就可以去執行 select 語句, 並且查看 console 內容
select 語句, 並且查看 console 內容Last updated