最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Mybatis動態(tài)sql

 更新時間:2016年04月19日 11:29:35   作者:xiaoerduo123x  
MyBatis的動態(tài)SQL是基于OGNL表達(dá)式的,它可以幫助我們方便的在SQL語句中實現(xiàn)某些邏輯。本文給大家介紹Mybatis動態(tài)sql小結(jié),感興趣的朋友參考下

1.什么是mybatis動態(tài)sql

看到動態(tài),我們就應(yīng)該想到,這是一個可以變化的sql語句

MyBatis的動態(tài)SQL是基于OGNL表達(dá)式的,它可以幫助我們方便的在SQL語句中實現(xiàn)某些邏輯

2.mybatis動態(tài)sql使用前準(zhǔn)備

a.數(shù)據(jù)庫表

b.創(chuàng)建類

3.使用mybatis動態(tài)sql,得先知道一些屬性值

一,插入

selectKey:在sql語句前后或后執(zhí)行的sql語句

keyColumn:對應(yīng)字段名或別名

keyProperty:對應(yīng)實體類的屬性名或map的key值

order:在執(zhí)行語句前或后執(zhí)行

resultType:返回結(jié)果的類型

第一種方式:最簡單的動態(tài)sql 插入

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

測試

測試結(jié)果

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

insert into course(id,
courseCode,
courseName
)
values(seq_course.nextval,
#{courseCode},
#{courseName}
)

測試及結(jié)果


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

現(xiàn)在為題又來了,如果我們想把最后一個字段變?yōu)榭?,或者兩個字段都變?yōu)榭盏臅r候,會出現(xiàn)什么情況

最后一個字段變?yōu)榭?/p>

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

兩個字段都變?yōu)榭赵囋?/p>

還是多了一個逗號

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

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

這種方式要引入trim

trim也有幾種屬性

prefix:添加前綴

prefixOverrides:覆蓋前綴

suffix:添加后綴

suffixOverrides:覆蓋后綴

id,
courseCode,
courseName
seq_course.nextval,
#{courseCode},
#{courseName}

看,問題解決了

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

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

1.我們怎么樣復(fù)制表結(jié)構(gòu)

create table course02 as select * from COURSE

這個語句是不是很熟悉,對的,course02這個表不僅復(fù)制了course表的表結(jié)構(gòu),把course表的內(nèi)容也復(fù)制進來了

2.我們怎么樣只復(fù)制course的表結(jié)構(gòu),而不復(fù)制course表的內(nèi)容呢

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

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

insert into course03 select * from course;

答案是一樣的

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

insert into course03
select '6', 'yc06', '數(shù)據(jù)結(jié)構(gòu)06' from dual union
select '7', 'yc07', '數(shù)據(jù)結(jié)構(gòu)07' from dual union
select '8', 'yc08', '數(shù)據(jù)結(jié)構(gòu)08' from dual

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

insert into course
select #{courses.id},#{courses.courseCode},
#{courses.courseName} from dual

二,修改

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

update course set
courseCode=#{courseCode},
courseName=#{courseName} 
where id=#{id}

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

update course
courseCode=#{courseCode},
courseName=#{courseName} 
where id=#{id}

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

choose相當(dāng)于多重if

第一個when相當(dāng)于if,第二個when相當(dāng)于else if

otherwise相當(dāng)于else

update course
courseCode=#{courseCode},
courseCode=courseCode,
courseName=#{courseName},
courseName=courseName,
where id=#{id}

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

相關(guān)文章

最新評論

新源县| 凤庆县| 磐石市| 东源县| 甘南县| 黑龙江省| 射洪县| 扶沟县| 莱阳市| 霍林郭勒市| 沅江市| 正阳县| 抚松县| 敦煌市| 固始县| 清原| 汉川市| 客服| 调兵山市| 鸡泽县| 邳州市| 沂水县| 长治市| 德州市| 抚远县| 江阴市| 同心县| 天气| 裕民县| 陆川县| 夏河县| 勃利县| 石泉县| 旬阳县| 宜黄县| 阿拉善右旗| 宣汉县| 安溪县| 英吉沙县| 香格里拉县| 保定市|