多選刪除,修改筆記的型別,會出現效能差,用乙個sql最好。
mybatis提供的動態sql拼接功能,可以優化資料層操作,減少冗餘sql的產生,進而提供資料訪問效能。
動態sql經常與陣列,list,map 引數配合使用。動態update
update
cn_note
setcn_note_type_id='2'
where
cn_note_id in
separator="," close=")">
#foreach>
以上**中:
map作為引數
id="updatenotes"
parametertype="map">
update
cn_note
//判斷語句,如果typeid不為空,
//則執行下面的語句
test="typeid!=null">
cn_note_type_id=#,
if>
test="title!=null">
cn_note_title=#,
if>
test="lastmodifytime!=null">
cn_note_last_modify_time=#
if>
set>
where
cn_note_id in
collection="ids"
item="id"
open="("
separator=","
close=")">
#foreach>
update>
- 陣列引數時候元素無需使用屬性 paramatertype
元素是迭代元素
collection="list" 表示方法接收引數是list集合
多項選擇
test="lastmodifytime!=null">
cn_note_last_nodify_time=#
when>
test="modifybegin!=null and modifyend!=null>
cn_note_last_modify_time between
# and # and
modifybegin!=null">
cn_note_last_modify_time >
#when>
test="modifyend!=null">
cn_note_last_modify_time <
#when>
choose>
test="ids!=null">
cn_note_id in
collection="ids"
item="id"
open="("
separator=","
close=")">#
foreach>
where>
chooose>
jpa 動態sql拼接 JPA的動態查詢拼接
在使用spring jpa提供的方法只能進行簡單的crud,如果遇到複雜的情況就需要我們動態來構建查詢條件了。這裡我們來看使用criteriabuilder如何來構造查詢。核心 criteriabuilder criteriabuilder entitymanager.getcriteriabuil...
Oracle中動態SQL拼接
1.直接用單引號,單引號的使用是就近配對,即就近原則。從第二個單引號開始被視為轉義符 v sql insert into bjtongrentangtemptb select distinct h.sellerid,h.sellercode,h.sellername,h.prodcode,h.pro...
動態SQL拼接要防注入
不要相信使用parameter安全呼叫分頁存貯過程會沒有sql注入 如 dbparameter dbparams list data.getdbdatareader getpagerrowover dbparams tolist tresult 這種呼叫也存在sql注入.我想查詢news表中titl...