系統架構: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表)