mybaties 鏈式編程以及mybatis處理 原理深入


連式編程教程

基本概念

上次寫的一個博客丟失了 現在只能大致截一下圖 不會太詳細

DTD約束 (mapper映射xml+全局配置xml)

全局配置XML標簽

propertis (導入外部配置文件)


stting 全局設置標簽

設置項很多(緩存、駝峰命名、jdbctype等)

typeAliases java類別名

java全類名起一個別名

注意:默認別名大小寫並不敏感
批量包取別名+類其單獨別名

TypeHealder 類型處理器

數據庫類型轉化為 java類型的映射
默認的類型轉化

plugins 插件

攔截四大組件的方法前后進行處理

enviroments 環境

配置多個環境默認開始其中一個 (連接池。連接信息 、事務處理 )

databaseldProviudr 多數據庫支持

不同的數據庫執行不同的sql方法 數據庫起一個別名

mapper 映射資源配置


批量注冊

mapper映射文件標簽 (數據庫需要支持自增主鍵比如:mysql)

自增主鍵設置


主鍵放入 返回值的id屬性

序列主鍵設置(不支持自增主鍵 比如:orcle )


springboot進行mybaties測試

參數處理

多參數指定默認生成map的key

不同類型取參數值


原理

獲取mapper對象(是一個代理對象)

調用(代理對象)方法


處理類為MapperProry

方法包裝類的執行方法


參數轉化方法





注意:parm是是parm1開始的

$和#(推薦) 區別

{}的更多用法

null值處理



所以可能傳null可能出現無效的類型 因為數據庫不支持這個類型


處理方式
第一種

第二種

特殊類型返回值處理


map的返回

單條記錄封裝map resultType=“map”
多條記錄封裝map resultType=“封裝類型” + 注解是[id,,]屬性封裝為key

多條記錄封裝list resultType=“封裝類型”

自定義返回值規則 resultMap

在關聯查詢(多表查詢個含有對象關系封裝)上的應用

第一種 級聯屬性封裝成結構集

第二種 association定義關聯對象 (可以使用延遲加載+分布查詢)

第三種 collection定義集合對象 可以使用延遲加載+分布查詢)

第四種 dicscriminator鑒別器 (根據某列的取值情況采用不同的封裝規則)

分布查詢

如果只是查但是沒有用到的話 就不會去查詳細信息 (用到的時候才會查 更詳細的信息(子查詢) )

設置 延遲加載 開啟配置



具體列設置

區別 :一個是否開啟懶加載 一個規定什么時候去懶加載

association (相當於一個sql物理分為了幾個子查詢)

collection


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM