1.什麼是mybatis動態sql
看到動態,我們就應該想到,這是乙個可以變化的sql語句
mybatis的動態sql是基於ognl表示式的,它可以幫助我們方便的在sql語句中實現某些邏輯
2.mybatis動態sql使用前準備
a.資料庫表
b.建立類
3.使用mybatis動態sql,得先知道一些屬性值
一,插入
selectkeyktjmk:在sql語句前後或後執行的sql語句
keycolumn:對應欄位名或別名
keyproperty:對應實體類的屬性名或map的key值
order:在執行語句前或後執行
resulttype:返回結果的型別
第一種方式:最簡單的動態sql 插入
insert into course values(seq_course.nextval,#,#)
select max(id) currid from course
測試測試結果
第二種方式:如果我不想插入這麼多的字段,coursename這個欄位我不想插入,那麼第一種這種方式,肯定是不行的
insert into course(id,
coursecode,
coursename
)values(seq_course.nextval,#,#
)測試及結果
由此可見,這種方式,在我不想插入coursecode這個欄位的時候,我們是可以實現的
現在為題又來了,如果我們想把最後乙個字段變為空,或者兩個欄位都變為空的時候,會出現什麼情況
最後乙個字段變為空
控制台第乙個問號後面好像多了乙個逗號
兩個欄位都變為空試試
還是多了乙個逗號
出現上面這種情況的原因是,在不想插入欄位的時候,我們並沒有把逗號去掉,所有現在介紹第三種方式
第三種方式,去掉多餘的逗號
這種方式要引入trim
trim也有幾種屬性
prefix:新增字首
prefixoverrides:覆蓋字首
suffix:新增字尾
suffixoverrides:覆蓋字尾
id,coursecode,
coursename
seq_course.nextval,
#,#看,問題解決了
ktjmk在做專案的時候,我們經常對資料庫進行插入資料,有時候我們會想同時插入多條,那麼,在使用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
現在sqlwww.cppcns.com語句有了,我們就可以在配置檔案中進行插入操作了
insert into course
selec程式設計客棧t #,#,
# from dual
二,修改
1.使用trim,前面也已經介紹,使用trim可以去字首,是因為有suffixoverrides這個屬性
update course set
coursecode=#,
coursename=#
where id=#
2.使用set,可以代替語句中的set,還可以去掉字尾
update course
coursecode=#,
coursename=#
where id=#
3.在修改的時候我們也會有選擇性的修改,有時候我們不想修改的值,讓其和沒有修改的值一致
choose相當於多重if
第乙個when相當於if,第二個when相當於else if
otherwise相當於else
update course
coursecode=#,
coursecode=coursecode,
coursename=#,
coursename=coursename,
where id=#
本文標題: 詳解mybatis動態sql
本文位址:
mybatis 動態sql詳解
內容 轉到原網頁insert into t blog title,content,owner values select from t blog where id update t blog set title content owner where id select from t blog se...
Mybatis動態SQL例項詳解
動態sql 什麼是動態sql?mybatis的官方文件中是這樣介紹的?動態 sql 是 mybatis 的強大特性之一。如果你使用過 jdbc 或其它類似的框架,你應該能理解根據不同條件拼接 sql 語句有多痛苦,例如拼接時要確保不能忘記新增必要的空格,還要注意去掉列表最後乙個列名的逗號。利用動態 ...
Mybatis之動態SQL語法詳解
1 sql if sql where 判斷 ognl表示式 select from tbl employee id and last name like and email and gender 2 sql trim自定義字串擷取 用的不多,根據需求選擇 select from tbl employ...