連式編程教程
基本概念
上次寫的一個博客丟失了 現在只能大致截一下圖 不會太詳細
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

