mybatis學習記錄:typeHandler,plugin,批量插入,分頁,連表查詢

系統架構:springboot+mybatis+pageHelper+swagger-ui+mysql


接口地址:http://39.108.8.0:8081/swagger-ui.html

github地址:https://github.com/yykunn/springboot-mybatis.git


內容包括

* 插入時返回自增id

* 批量插入

* 分頁

* 使用Plugin打印執行的sql

* 使用TypeHandler在查詢和插入時修改字段的值

* 連表查詢


接口詳情

BaseController

* getById

根據id查user

* insertReturnAutoId

插入時將自增id賦值給實體

BatchController

* insertBatch

常用方法:拼接sql:insert sys_user(id,name) values(1,2),(2,3)。速度快,但mysql對sql的長度有限制(max_allowed_packet參數)

* insertBatch2

添加事物,遍歷集合,一個一個插入。每保存一條記錄都需要與數據庫建立連接,速度慢

PageController

* pageByLimitClause

模仿自動生成的mapper的orderByClause,添加limitClause,僅限mysql數據庫

* pageByPageHelper

pageHelper插件分頁,各類型數據庫通用

PluginController

* update

使用插件在打印出執行的sql

TypeHadnlerController

* getByIDUseTypeHandler

查詢時修改nickname屬性的值

* insertUseTypeHandler

插入時修改nickname屬性的值

UnionSelectController

* getBlogWithAuthorById

嵌套查詢,先查blog表拿到autho_id再查author表,2次查詢性能慢,n+1問題

* getBlogWithAuthorById2

推薦使用。嵌套結果,join一次查詢

* getAuthorWithBlogsById、

嵌套查詢,根據authorId分別查author表和blog表,2次查詢性能慢,n+1問題(查出了n個blog+1個author)

* getAuthorWithBlogsById2

推薦使用。嵌套結果,join一次查詢再封裝

* getAuthorNameById

嵌套查詢,測試懶加載(看控制檯打印的sql),解決n+1問題(業務只需要獲取authorName,不需要查blog表)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章