ibatis中isnotnull和isnotempty的区别_typedef int Status

ibatis中isnotnull和isnotempty的区别_typedef int StatusisPropertyAvailable和isNotEmpty这个两个属性非常有用isPropertyAvailable:入参有这个属性isNotEmpty:入参的这个属性不为空入参一般是一个封装了数据的DTO如果希望一个属性无论为何值都符合条件则使用isPropertyAvailable如果希望一个属性只是不为空的时候才符合条件就用isNotEmptyupdate例子如下:…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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中就可以达到上面两个方法的效果,进行非空参数的筛选。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185066.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring集成MyBatis

    Spring集成MyBatis回忆MyBatis定义表user定义pojo实体类User在dao层定义UserMapper接口接口对应的Mapper映射文件在Dao接口的包中创建MyBatis的映射文件UserMapper,命名与接口名相同,本例为UserMapper.xml。mapper中的namespace取值也为Dao接口的全限定性名。定义MyBatis主配置文件在resources下定义MyBatis的主配置文件,命名为mybatis-config.xml。<?xml

    2022年5月29日
    31
  • 自己动手写操作系统–个人实践「建议收藏」

    自己动手写操作系统–个人实践「建议收藏」最近开始看于渊的《自己动手写操作系统》这本书,刚开始看就发现做系统的引导盘竟然是软盘!心里那个汗啊!现在都是U盘了,谁还用软盘。于是考虑用U盘。于是开始以下步骤:1、既然书上说给先要把软盘做引导盘,那我就类似地把U盘做成引导盘。在网上找了半天,发现USboot,于是就用它给自己的U盘做了一个引导盘。2、把编译后的boot.bin文件用绝对扇区工具写入U盘就万事大吉了。同样,在网上找

    2022年10月21日
    0
  • 求平面方程的几种方法_平面及其方程

    求平面方程的几种方法_平面及其方程假设在三维世界中存在一个平面,如图  一个平面可以通过如下表达式表达                      (1)其中,(x,y,z)是在该平面上上的点的3D坐标。(A,B,C)能够构成该平面的一个法向量n。 那么,怎么通过一堆离散的点来求解这个平面呢?首先我们可以简单的用一个平面的法向量来表征一个平面。 方法1:假设在某个平面中存在着三个坐标点分别…

    2025年6月12日
    3
  • windows下CMD常用命令[通俗易懂]

    windows下CMD常用命令[通俗易懂]作为一个开发者,我们用的最多的就是windows,但是对于cmd,我不知道大家熟不熟,反正我是一直不怎么熟悉。平时操作linux比较多,反而忽视了cmd相关命令,这里大致总结一些常用的命令,作为记录。一、常用命令1、进入某个盘//进入d盘D://进入F盘F:这里我经常弄混,老是用cd命令,结果回回进不去。。Linux和windows果然不一样。2、查看目录文件//查看当前目录下的文件,类似于l

    2022年9月22日
    0
  • windows django安装

    windows django安装

    2021年9月13日
    63
  • XXE修复方案参考

    XXE修复方案参考XXE不同的库修复代码,略有差别,但都是通过:1、禁止加载外部实体;2、不允许XML中含有任何自己声明的DTD。可以解决

    2022年5月23日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号