大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
isPropertyAvailable和isNotEmpty
这个两个属性非常有用
isPropertyAvailable:入参有这个属性 isNotEmpty:入参的这个属性不为空
入参一般是一个封装了数据的DTO
如果希望一个属性无论为何值都符合条件则使用isPropertyAvailable 如果希望一个属性只是不为空的时候才符合条件就用isNotEmpty
update例子如下:
<update id="partner.update.back">
update partner
<dynamic prepend="set">
<isPropertyAvailable property="domain_url" prepend=",">domain_url=#domain_url#</isPropertyAvailable>
<isNotNull property="user_name"><isNotEmpty prepend="," property="user_name">user_name=#user_name#</isNotEmpty></isNotNull>
</dynamic>
where partner_id=#partner_id#
</update>
select例子如下:
select rownum sno,cott.* FROM cottonbaginfo cott where 1=1
<dynamic >
<isNotEmpty prepend=" and " property="grower">grower = 111</isNotEmpty>
</dynamic>
因为 是动态的,当你的条件不满足时就不会走,执行
select rownum sno,cott.* FROM cottonbaginfo cott where 1=1查询全部,当条件满足时就执行 。
当然了再mybatis中,以上两种方法并不适用,可以使用:
<select id="selectApplyList" resultType="java.util.Map">
select *
from tb_apply_info a left join tb_users_contact u on a.wx_id = u.wx_id
<where>
a.wx_id = #{wxId}
<if test="lessonId != null">
and lesson_id = #{lessonId}
</if>
<if test="applyState != null">
and apply_state = #{applyState}
</if>
order by a.last_time desc
</where>
将可能出现空值的参数,用if包起来。这样在mybatis中就可以达到上面两个方法的效果,进行非空参数的筛选。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185066.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...