国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 詳解Mybatis動態sql

詳解Mybatis動態sql

2020-04-18 12:06xiaoerduo123x JAVA教程

MyBatis的動態SQL是基于OGNL表達式的,它可以幫助我們方便的在SQL語句中實現某些邏輯。本文給大家介紹Mybatis動態sql小結,感興趣的朋友參考下

1.什么是mybatis動態sql

看到動態,我們就應該想到,這是一個可以變化的sql語句

MyBatis的動態SQL是基于OGNL表達式的,它可以幫助我們方便的在SQL語句中實現某些邏輯

2.mybatis動態sql使用前準備

a.數據庫表

詳解Mybatis動態sql

b.創建類

詳解Mybatis動態sql

3.使用mybatis動態sql,得先知道一些屬性值

一,插入

selectKey:在sql語句前后或后執行的sql語句

keyColumn:對應字段名或別名

keyProperty:對應實體類的屬性名或map的key值

order:在執行語句前或后執行

resultType:返回結果的類型

第一種方式:最簡單的動態sql 插入

?
1
2
insert into course values(seq_course.nextval,#{courseCode},#{courseName})
select max(id) currId from course

詳解Mybatis動態sql

測試

測試結果

詳解Mybatis動態sql

第二種方式:如果我不想插入這么多的字段,courseName這個字段我不想插入,那么第一種這種方式,肯定是不行的

?
1
2
3
4
5
6
7
8
insert into course(id,
courseCode,
courseName
)
values(seq_course.nextval,
#{courseCode},
#{courseName}
)

測試及結果

詳解Mybatis動態sql

由此可見,這種方式,在我不想插入courseCode這個字段的時候,我們是可以實現的

現在為題又來了,如果我們想把最后一個字段變為空,或者兩個字段都變為空的時候,會出現什么情況

最后一個字段變為空

詳解Mybatis動態sql

控制臺第一個問號后面好像多了一個逗號

兩個字段都變為空試試

詳解Mybatis動態sql

還是多了一個逗號

出現上面這種情況的原因是,在不想插入字段的時候,我們并沒有把逗號去掉,所有現在介紹第三種方式

第三種方式,去掉多余的逗號

這種方式要引入trim

trim也有幾種屬性

prefix:添加前綴

prefixOverrides:覆蓋前綴

suffix:添加后綴

suffixOverrides:覆蓋后綴

?
1
2
3
4
5
6
id,
courseCode,
courseName
seq_course.nextval,
#{courseCode},
#{courseName}

 

詳解Mybatis動態sql

看,問題解決了

在做項目的時候,我們經常對數據庫進行插入數據,有時候我們會想同時插入多條,那么,在使用mybatis我們該怎么樣插入多條數據呢

在這里,我們要解決幾個問題

1.我們怎么樣復制表結構

?
1
create table course02 as select * from COURSE

這個語句是不是很熟悉,對的,course02這個表不僅復制了course表的表結構,把course表的內容也復制進來了

2.我們怎么樣只復制course的表結構,而不復制course表的內容呢

?
1
create table course03 as select * from COURSE where 1!=1;

3.那么進行插入的時候,是不是也是和這個一樣呢

?
1
insert into course03 select * from course;

答案是一樣的

4.怎么進行多條語句的插入

?
1
2
3
4
insert into course03
select '6', 'yc06', '數據結構06' from dual union
select '7', 'yc07', '數據結構07' from dual union
select '8', 'yc08', '數據結構08' from dual

現在sql語句有了,我們就可以在配置文件中進行插入操作了

?
1
2
3
insert into course
select #{courses.id},#{courses.courseCode},
#{courses.courseName} from dual

詳解Mybatis動態sql

二,修改

1.使用trim,前面也已經介紹,使用trim可以去前綴,是因為有suffixOverrides這個屬性

?
1
2
3
4
update course set
courseCode=#{courseCode},
courseName=#{courseName}
where id=#{id}

2.使用set,可以代替語句中的set,還可以去掉后綴

?
1
2
3
4
update course
courseCode=#{courseCode},
courseName=#{courseName}
where id=#{id}

3.在修改的時候我們也會有選擇性的修改,有時候我們不想修改的值,讓其和沒有修改的值一致

choose相當于多重if

第一個when相當于if,第二個when相當于else if

otherwise相當于else

?
1
2
3
4
5
6
update course
courseCode=#{courseCode},
courseCode=courseCode,
courseName=#{courseName},
courseName=courseName,
where id=#{id}

以上所述是小編給大家介紹的Mybatis動態sql的全部內容,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av在线免费网址 | 懂色av中文字幕一区二区三区 | 亚洲精品久久久久久下一站 | 草久在线观看 | 亚洲第一黄色 | 97久久久 | 中国黄色片在线观看 | 午夜精品一区二区三区免费视频 | 久久久www | 日本中文字幕在线电影 | 色678黄网站全部免费 | 色天堂视频 | 免费看黄a | 男女视频网址 | 女人爽到高潮aaaa电影 | 国产成人免费视频网站视频社区 | 91最新| 久久99精品久久久久 | 欧美精品一区二区蜜臀亚洲 | 欧美高清在线 | 欧美一级欧美三级在线观看 | 韩国理论电影在线 | 黄视频网站在线观看 | 天天射影院 | 精品国产乱码久久久久久1区2区 | 久久久久99| 91天天综合 | 国产精品成人一区二区三区 | 欧美成人免费在线视频 | 一级毛片在线播放 | 欧美一区二区三区免费 | 91久久综合亚洲鲁鲁五月天 | 视频在线一区二区三区 | 色片视频免费 | 日本成人中文字幕 | 久久天堂电影 | 欧美日韩国产免费 | 91麻豆产精品久久久久久 | 日韩在线 | 精品久久久久久国产 | 99精品视频免费观看 |