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,courseNameseq_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 course03select '6', 'yc06', '數據結構06' from dual unionselect '7', 'yc07', '數據結構07' from dual unionselect '8', 'yc08', '數據結構08' from dual
現在sql語句有了,我們就可以在配置文件中進行插入操作了
insert into courseselect #{courses.id},#{courses.courseCode},#{courses.courseName} from dual二,修改
1.使用trim,前面也已經介紹,使用trim可以去前綴,是因為有suffixOverrides這個屬性
update course setcourseCode=#{courseCode},courseName=#{courseName} where id=#{id}2.使用set,可以代替語句中的set,還可以去掉後綴
update coursecourseCode=#{courseCode},courseName=#{courseName} where id=#{id}3.在修改的時候我們也會有選擇性的修改,有時候我們不想修改的值,讓其和沒有修改的值一致
choose相當於多重if
第一個when相當於if,第二個when相當於else if
otherwise相當於else
update coursecourseCode=#{courseCode},courseCode=courseCode,courseName=#{courseName},courseName=courseName,where id=#{id}以上所述是小編給大家介紹的Mybatis動態sql的全部內容,希望對大家有所幫助!