詳解Mybatis靜態sql。本站提示廣大學習愛好者:(詳解Mybatis靜態sql)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Mybatis靜態sql正文
1.甚麼是mybatis靜態sql
看到靜態,我們就應當想到,這是一個可以變更的sql語句
MyBatis的靜態SQL是基於OGNL表達式的,它可以贊助我們便利的在SQL語句中完成某些邏輯
2.mybatis靜態sql應用前預備
a.數據庫表
b.創立類
3.應用mybatis靜態sql,得先曉得一些屬性值
一,拔出
selectKey:在sql語句前後或後履行的sql語句
keyColumn:對應字段名或別號
keyProperty:對應實體類的屬性名或map的key值
order:在履行語句前或後履行
resultType:前往成果的類型
第一種方法:最簡略的靜態sql 拔出
insert into course values(seq_course.nextval,#{courseCode},#{courseName}) select max(id) currId from course
測試
測試成果
第二種方法:假如我不想拔出這麼多的字段,courseName這個字段我不想拔出,那末第一種這類方法,確定是不可的
insert into course(id, courseCode, courseName ) values(seq_course.nextval, #{courseCode}, #{courseName} )
測試及成果
因而可知,這類方法,在我不想拔出courseCode這個字段的時刻,我們是可以完成的
如今為題又來了,假如我們想把最初一個字段變成空,或許兩個字段都變成空的時刻,會湧現甚麼情形
最初一個字段變成空
掌握台第一個問號前面似乎多了一個逗號
兩個字段都變成空嘗嘗
照樣多了一個逗號
湧現下面這類情形的緣由是,在不想拔出字段的時刻,我們並沒有把逗號去失落,一切如今引見第三種方法
第三種方法,去失落過剩的逗號
這類方法要引入trim
trim也有幾種屬性
prefix:添加前綴
prefixOverrides:籠罩前綴
suffix:添加後綴
suffixOverrides:籠罩後綴
id, courseCode, courseName seq_course.nextval, #{courseCode}, #{courseName}
看,成績處理了
在做項目標時刻,我們常常對數據庫停止拔出數據,有時刻我們會想同時拔出多條,那末,在應用mybatis我們該怎樣樣拔出多條數據呢
在這裡,我們要處理幾個成績
1.我們怎樣樣復制表構造
create table course02 as select * from COURSE
這個語句是否是很熟習,對的,course02這個表不只復制了course表的表構造,把course表的內容也復制出去了
2.我們怎樣樣只復制course的表構造,而不復制course表的內容呢
create table course03 as select * from COURSE where 1!=1;
3.那末停止拔出的時刻,是否是也是和這個一樣呢
insert into course03 select * from course;
謎底是一樣的
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語句有了,我們便可以在設置裝備擺設文件中停止拔出操作了
insert into course select #{courses.id},#{courses.courseCode}, #{courses.courseName} from dual
二,修正
1.應用trim,後面也曾經引見,應用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相當於多重if
第一個when相當於if,第二個when相當於else if
otherwise相當於else
update course courseCode=#{courseCode}, courseCode=courseCode, courseName=#{courseName}, courseName=courseName, where id=#{id}
以上所述是小編給年夜家引見的Mybatis靜態sql的全體內容,願望對年夜家有所贊助!