日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

框架:mybatis常用标签(refid、foreach、trim)

發(fā)布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架:mybatis常用标签(refid、foreach、trim) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、mybatis中refid是什么意思

1、首先定義一個sql標簽,一定要定義唯一id

<sql id="Base_Column_List" >name,age</sql>
2、然后通過id引用
<select id="selectAll">
select?
<include refid="Base_Column_List" />
????from student
</select>
這個<include refid="Base_Column_List" />會自動把上面的代碼貼過來

即:

<select id="selectAll">
select?name,age
????from student
</select>

相當于mysql里的視圖!!!



2、mybatis動態(tài)sql中foreach標簽的使用


foreach標簽主要用于構建in條件,他可以在sql中對集合進行迭代。如下:

<delete id="deleteBatch">?

delete from user where id in

<foreach collection="array" item="id" index="index"?open="("? close=")" separator=","> #{id} </foreach>

</delete>

我們假如說參數為---- ?int[] ids = {1,2,3,4,5} ?----那么打印之后的SQL如下:

delete form user where id in (1,2,3,4,5)

釋義:

collection:collection屬性的值有三個分別是list、array、map三種,分別對應的參數類型為:List、數組、map集合,我在上面?zhèn)鞯膮禐閿到M,所以值為array

item :表示在迭代過程中每一個元素的別名

index:表示在迭代過程中每次迭代到的位置(下標

open :前綴

close:后綴

separator:分隔符,表示迭代時每個元素之間以什么分隔

我們通常可以將之用到批量刪除、添加等操作中。

相當于mysql里的游標!!!


3、mybatis動態(tài)sql中的trim標簽的使用


trim標記是一個格式化的標記(format),可以完成set或者是where標記的功能,如下代碼:

1、

select * from user?

<trim? prefix="WHERE" prefix override="AND |OR">

<if test="name != null and name.length()>0"> AND name= #{name}</if>

<if test="gender != null and gender.length()>0"> AND gender= #{gender}</if>

</trim>

假如說name和gender的值都不為null的話打印的SQL為:

select * from user where?? #??name = 'xx' and gender = 'xx'

紅色#?標記的地方是不存在第一個and的,上面兩個屬性的意思如下:

prefix:前綴      

prefixoverride:去掉第一個and或者是or

?

2、

update user

<trim prefix="set" suffix override="," suffix=" where id =#{id} ">

<if test="name != null and name.length()>0"> name=#{name} ,</if>

<if test="gender != null and gender.length()>0"> gender=#{gender} ,?</if>

</trim>

假如說name和gender的值都不為null的話打印的SQL為:

update user set name='xx' , gender='xx'?#??whereid='x'

在紅色標記的地方不存在逗號,而且自動加了一個set前綴和where后綴,上面三個屬性的意義如下,其中prefix意義如上:

suffixoverride:去掉最后一個逗號(也可以是其他的標記,就像是上面前綴中的and一樣)

suffix:后綴
?

總結

以上是生活随笔為你收集整理的框架:mybatis常用标签(refid、foreach、trim)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。