連式編程教程
基本概念
上次寫的一個博客丟失了 現在只能大致截一下圖 不會太詳細
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鑒別器 (根據某列的取值情況采用不同的封裝規則)
分布查詢
如果只是查但是沒有用到的話 就不會去查詳細信息 (用到的時候才會查 更詳細的信息(子查詢) )
設置 延遲加載 開啟配置
具體列設置
區別 :一個是否開啟懶加載 一個規定什么時候去懶加載