首页 > 数据库 >mybatis中常见的动态SQL标签

mybatis中常见的动态SQL标签

时间:2024-03-14 16:25:53浏览次数:25  
标签:status product code 标签 SQL orderQueryReq time mybatis order

在xml中写动态SQL的的时候,有一些常见的,如if 、foreach

        SELECT a.*,c.product_name
        FROM work_order a LEFT JOIN product c ON a.product_code = c.product_code AND c.del_flag = 0
        where a.del_flag = 0 
        <if test="orderQueryReq.productCode != null and orderQueryReq.productCode != ''">
            AND a.product_code like concat('%',#{orderQueryReq.productCode},'%')
        </if>
        <if test="orderQueryReq.productName != null and orderQueryReq.productName != ''">
            AND c.product_Name like concat('%',#{orderQueryReq.productName},'%')
        </if>
        <if test="orderQueryReq.orderStatus != null">
            AND a.order_status = #{orderQueryReq.orderStatus}
        </if>
        <if test="orderQueryReq.auditStatus != null">
            AND a.audit_status = #{orderQueryReq.auditStatus}
        </if>
        <if test="orderQueryReq.startTimeStart != null and orderQueryReq.startTimeStart != ''">
            AND a.start_time <![CDATA[ >= ]]> #{orderQueryReq.startTimeStart}
        </if>
        <if test="orderQueryReq.startTimeEnd != null and orderQueryReq.startTimeEnd != ''">
            AND a.start_time <![CDATA[ <= ]]> #{orderQueryReq.startTimeEnd}
        </if>
        <if test="orderQueryReq.endTimeStart != null and orderQueryReq.endTimeStart != ''">
            AND a.end_time <![CDATA[ >= ]]> #{orderQueryReq.endTimeStart}
        </if>
        <if test="orderQueryReq.endTimeEnd != null and orderQueryReq.endTimeEnd != ''">
            AND a.end_time <![CDATA[ <= ]]> #{orderQueryReq.endTimeEnd}
        </if>
        <if test="orderQueryReq.orderIds != null and orderQueryReq.orderIds.size() > 0">
            AND a.id IN
            <foreach collection="orderQueryReq.orderIds" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        </if>
        ORDER BY field(a.audit_status, 10,30,20) , field(a.order_status,30,20,10,40) ,a.start_time ASC

如上涉及到if标签内,如果为string的时候判断,Integer时候判断,时间字段的判断,遍历集合时候写法

order by如果不是按照某一个字段规律的顺序来的,可以使用field关键字,里面第一项填写的是属性字段,后面就按照想排序的值进行排序,也就不用填desc和asc

 

标签:status,product,code,标签,SQL,orderQueryReq,time,mybatis,order
From: https://www.cnblogs.com/qwg-/p/18073102

相关文章

  • MSSQL 查询每个表的占用空间大小
     SELECTt.NAMEASTableName,p.rowsASRowCounts,SUM(a.total_pages)*8ASTotalSpaceKB,SUM(a.used_pages)*8ASUsedSpaceKB,(SUM(a.total_pages)-SUM(a.used_pages))*8ASUnusedSpaceKBFROMsys.tablestI......
  • sql注入——union联合注入
    union的作用:用于合并两个或多个查询语句的结果集,注意:union内部的查询语句必须查和外部相同数量的列。orderby的作用:用于根据指定的列对结果集进行排序使用orderby的目的:因为orderby对没有的列进行排序时会报错,利用这个特性能够快速的确定这张表有多少个字段 注入步骤:......
  • mybatis plus saveBatch报错问题
    sessionRecordHumanService.saveBatch(dataList);具体报错如下:org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.exceptions.PersistenceException: ###Errorupdatingdatabase.Cause:java.lang.IllegalArgumentException:MappedSta......
  • HTML常用布局标签:提升网页颜值!不可不知的HTML布局技巧全解析!
    在HTML的世界里,一切都是由容器和内容构成的。容器,就如同一个个盒子,用来装载各种元素;而内容,则是这些盒子里的珍宝。理解了这一点,我们就迈出了探索HTML布局的第一步。在HTML中,布局标签主要用于控制页面的结构和样式。本文将介绍一些常用的布局标签及其使用方法,并通过代码示例进行演......
  • PostgreSQL从入门到精通教程 - 第46讲:poc-tpch测试
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第46讲:POC-TPCH测试  内容1:TPC-H介绍内容2:TPC-H......
  • 基于springboot的高校招生系统(含源码+sql+视频导入教程+文档+PPT)
    ......
  • 基于Django(python+sql)的校园二手交易系统设计与实现(完整程序+开题报告+论文)
    摘要        随着互联网的迅猛发展,校园内的二手交易市场也逐渐呈现出蓬勃的发展态势。学生们在校园生活中会产生大量的闲置物品,而其他学生也有可能需要这些物品。本论文研究了校园二手交易系统的需求分析、系统实现和测试三个部分,旨在提高校园二手交易系统的开发和测......
  • mybatis oracle数据库批量插入数据,忽略主键重复
    dao方法IntegerinsertPackagesNew(@Param("list")List<InfCollectpackage>list);mapper.xml<insertid="insertPackagesNew"parameterType="java.util.List">MERGEINTOINF_COLLECTPACKAGEAUSING(&......
  • 数据库练习发生的error—— check the manual that corresponds to your MySQL server
    记录一下发生的错误。 checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''id'),参考链接:完美解决ERROR1064(42000):YouhaveanerrorinyourSQLsyntax...near…_responsecode:420001064r......
  • MYSQL 是如何保证binlog 和redo log同时提交的?
    MYSQL一个事务在提交的时候能够保证binlog和redolog是同时提交的,并且能在宕机恢复后保持binlog和redolog的一致性。先来看看什么是redolog和binlog,以及为什么要保持它们的一致性。什么是redolog,binlogredolog是innodb引擎层产生的日志,MYSQL从磁盘读取数据的单位是一......