Mybatis
1.導(dǎo)包:一個(gè)主包,和其他的依賴包
2.編寫配置文件:主配置文件和映射文件既忆,在將映射文件加入到主配置文件
[圖片上傳中驱负。。患雇。(1)]
[圖片上傳中跃脊。。苛吱。(2)]
[圖片上傳中酪术。。。(3)]
基本的CRUD
[圖片上傳中绘雁。橡疼。。(4)]
[圖片上傳中庐舟。欣除。。(5)]
采用注解的方式:
[圖片上傳中挪略。耻涛。。(6)]
[圖片上傳中瘟檩。。澈蟆。(7)]
老方式:
[圖片上傳中墨辛。。趴俘。(8)]
幾個(gè)特殊類的生命周期
SqlSessionFactoryBuilder:創(chuàng)建好SqlSessionFactory之后睹簇,它的使命就完成了
SqlSessionFactory:單例
SqlSession:通過finally來關(guān)閉session
一般將獲得sqlsession的方式生成一個(gè)單例的工具類
[圖片上傳中。寥闪。太惠。(9)]
或者直接用一類的方法來讀取配置文件
讀取配置文件的配置<properties resource="jdbc.properties"/>
[圖片上傳中。疲憋。凿渊。(10)]
設(shè)置別名:
[圖片上傳中。缚柳。埃脏。(11)]
[圖片上傳中。秋忙。彩掐。(12)]
[圖片上傳中。灰追。堵幽。(13)]
處理表字段和對象屬性不一致時(shí),和模糊查詢的方法:
[圖片上傳中弹澎。朴下。。(14)]
傳遞多個(gè)參數(shù):
1.使用map傳參數(shù)裁奇,在通過方法參數(shù)直接將賦值之后的map傳進(jìn)來桐猬,然后在sql語句中直接去map中的key
即可取出(測試程序,創(chuàng)建map,然后查詢)
[圖片上傳中。刽肠。溃肪。(15)]
2.采用注解的方式傳參數(shù)
[圖片上傳中免胃。。惫撰。(16)]
采用param的注解取傳來的值
[圖片上傳中羔沙。。厨钻。(17)]
3.采用采用javabean的方式
[圖片上傳中扼雏。。夯膀。(18)]
sql片段:就是把相同的一段sql語句抽取出來
[圖片上傳中诗充。。诱建。(19)]
[圖片上傳中蝴蜓。。俺猿。(20)]
動態(tài)表格技術(shù)
[圖片上傳中茎匠。。押袍。(21)]
[圖片上傳中诵冒。。谊惭。(22)]
就是在Var對象里面設(shè)置一個(gè)String的屬性汽馋,再把表字段set進(jìn)去,需要的時(shí)候在取出來
insert:主鍵回填圈盔,插入值后再獲取其主鍵
delete惭蟋,update都一樣
就是在添加完user之后可以用get方法獲取主鍵值
[圖片上傳中。药磺。告组。(23)]
[圖片上傳中。癌佩。木缝。(24)]
動態(tài)sql:
解決大量拼裝SQL的工作
if:需求:我們現(xiàn)在做用戶查詢,有可能帶用戶名,有可能不帶查詢的時(shí)候,給了不給username的值
就是說如果要進(jìn)行查詢,那么先會判斷你傳過來的這個(gè)對象里面有沒有這個(gè)屬性賦值围辙,如果判斷不為空
那就就是說屬性里面有值我碟,那么sql語句就會將條件判斷的sql語句拼接在上面進(jìn)行查詢,反之不進(jìn)行拼接姚建,當(dāng)然如果有多個(gè)參數(shù)矫俺,再在下面寫if即可
[圖片上傳中。。厘托。(25)]
where:替代我們sql語句的where 1=1
[圖片上傳中友雳。。铅匹。(26)]
trim:替換的作用(替換sql語句)
把sql語句中的and覆蓋掉押赊,換成where
[圖片上傳中。包斑。流礁。(27)]
choose、when罗丰、otherwise多條件查詢神帅,多條件查詢的時(shí)候只要滿足一個(gè)條件就不再向下執(zhí)行了
還是取決于里面有沒有賦值
[圖片上傳中。萌抵。枕稀。(28)]
set 假如一個(gè)表有多個(gè)字段,但我只需要更新需要更新的字段
方法的參數(shù)列表傳遞一個(gè)對象進(jìn)來谜嫉,需要哪個(gè)字段的更新就更新哪個(gè)
[圖片上傳中。凹联。沐兰。(29)]
foreach主要是做批量刪除或者修改
形參列表傳參數(shù)時(shí)傳一個(gè)數(shù)組
[圖片上傳中。蔽挠。住闯。(30)]
采用集合的方式
[圖片上傳中。澳淑。比原。(31)]
采用map的方式
value可以是數(shù)組和集合等
[圖片上傳中。杠巡。量窘。(32)]
[圖片上傳中。氢拥。蚌铜。(33)]
resultMap結(jié)果集映射
比如上面,我們遇到的數(shù)據(jù)表字段和類屬性不一致的情況嫩海,這個(gè)時(shí)候冬殃,我們可以用resultMap來做對應(yīng)的映射關(guān)系(只能在select里面使用resultMap)
[圖片上傳中。叁怪。审葬。(34)]
在使用的時(shí)候用parameterType調(diào)用上面的結(jié)果集,因?yàn)榻Y(jié)果集里面有返回值類型,所以在select里面不用在寫返回值類型
[圖片上傳中涣觉。痴荐。。(35)]
使用枚舉把屬性字段變成數(shù)字存儲起來旨枯,例如在程序中sex為靜態(tài)常量蹬昌,在數(shù)據(jù)庫中為數(shù)字,取出來又是常量
創(chuàng)建枚舉類
[圖片上傳中攀隔。皂贩。。(36)]
填充數(shù)據(jù)
[圖片上傳中昆汹。明刷。。(37)]
存入數(shù)據(jù)庫時(shí)字段后面加上這個(gè)
[圖片上傳中满粗。辈末。。(38)]
取字段時(shí)也是這樣映皆,在結(jié)果集里面配置一下挤聘,取出來就是靜態(tài)常量
[圖片上傳中。捅彻。组去。(39)]
級聯(lián):
一對一的配置方式(是在user里面持有card的對象,card持有一個(gè)外鍵)
[圖片上傳中步淹。从隆。。(40)]
配置完了還得調(diào)用
[圖片上傳中缭裆。键闺。。(41)]
采用這種繼承的方式來進(jìn)行配置:
[圖片上傳中澈驼。辛燥。。(42)]
[圖片上傳中缝其。购桑。。(43)]
一對多的配置:
[圖片上傳中氏淑。勃蜘。。(44)]
[圖片上傳中假残。缭贡。炉擅。(45)]