今天就跟大家聊聊有關(guān)使用MyBatis如何動態(tài)調(diào)用SQL標(biāo)簽,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),前進企業(yè)網(wǎng)站建設(shè),前進品牌網(wǎng)站建設(shè),網(wǎng)站定制,前進網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,前進網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、動態(tài)SQL片段
通過SQL片段達到代碼復(fù)用
select count(*) select * from icp name like '%$name$%' path like '%path$%' area_id = #area_id# hided = #hided# limit #_start#, #_size#
2、數(shù)字范圍查詢
所傳參數(shù)名稱是捏造所得,非數(shù)據(jù)庫字段,比如_img_size_ge、_img_size_lt字段
= #_img_size_ge# ]]>
多次使用一個參數(shù)也是允許的
= #_now# ]]>
3、時間范圍查詢
= #_starttime# and createtime < #_endtime# ]]>
4、in查詢
state in ('$_in_state$')
5、like查詢
(chnameone like '%$chnameone$%' or spellinitial like '%$chnameone$%') chnametwo like '%$chnametwo$%'
6、or條件
7、where子查詢
code not in (select t.contentcode from cms_ccm_programcontent t where t.contenttype='MZNRLX_MA' and t.programcode = #exprogramcode#)
9、函數(shù)的使用
insert into rulemaster( name, createtime, updatetime, remark ) values ( #name#, now(), now(), #remark# ) select LAST_INSERT_ID() update rulemaster set name = #name#, updatetime = now(), remark = #remark# where id = #id#
10、map結(jié)果集
select count(a.*) select a.id vid, a.img imgurl, a.img_s imgfile, b.vfilename vfilename, b.name name, c.id sid, c.url url, c.filename filename, c.status status From secfiles c, juji b, videoinfo a where a.id = b. videoid and b.id = c.segmentid and c.status = 0 order by a.id asc,b.id asc,c.sortnum asc limit #_start#, #_size#
11、trim
trim是更靈活的去處多余關(guān)鍵字的標(biāo)簽,他可以實踐where和set的效果。
where例子的等效trim語句:
Xml代碼
set例子的等效trim語句:
Xml代碼
UPDATE STUDENT_TBL WHERE STUDENT_TBL.STUDENT_ID = #{studentID}; STUDENT_TBL.STUDENT_NAME = #{studentName}, STUDENT_TBL.STUDENT_SEX = #{studentSex}, STUDENT_TBL.STUDENT_BIRTHDAY = #{studentBirthday}, STUDENT_TBL.CLASS_ID = #{classEntity.classID}
12、choose (when, otherwise)
有時候我們并不想應(yīng)用所有的條件,而只是想從多個選項中選擇一個。MyBatis提供了choose 元素,按順序判斷when中的條件出否成立,如果有一個成立,則choose結(jié)束。當(dāng)choose中所有when的條件都不滿則時,則執(zhí)行 otherwise中的sql。類似于Java 的switch 語句,choose為switch,when為case,otherwise則為default。
if是與(and)的關(guān)系,而choose是或(or)的關(guān)系。
例如下面例子,同樣把所有可以限制的條件都寫上,方面使用。選擇條件順序,when標(biāo)簽的從上到下的書寫順序:
Xml代碼
看完上述內(nèi)容,你們對使用MyBatis如何動態(tài)調(diào)用SQL標(biāo)簽有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。