mybatis传参、被逗号、分割的字符串、数组传参

简介: mybatis传参、被逗号、分割的字符串、数组传参

案例借鉴:

       SELECT *
       FROM yp_popup_store_info store
       WHERE store.store_id 
       IN
            <foreach item="item" index="index" collection="ids.split(',')"  open="(" separator="," close=")">
                '${item}'
            </foreach>

实际使用:  

parameterType="pd"(是我封装的类似于map的参数集)

 <select id="countAttendByDate"  parameterType="pd" resultType="Integer">
    select 
      count(distinct c.user_id) as count
    from dd_b_pc_attendance_clock c
    WHERE 1=1
    <if test="deptId !=null and deptId !=''">
    AND c.dept_id 
      <foreach collection="deptId.split(',')" item="deptId" index="index" open="in(" close=")" separator=",">
            #{deptId}
    </foreach>
    </if>
    <if test="beginTime != null and endTime != null and beginTime != '' and endTime != ''">
    AND c.user_check_time BETWEEN #{beginTime} AND #{endTime}
  </if>
  </select>

其他

  <select id="countsByUserId" parameterType="Integer[]" resultType="java.lang.Integer" >
        SELECT count(DISTINCT userid,mobile,name,unionid) 
        FROM s_sys_user
        <where>
        dept_id
          <foreach collection="array" item="deptId" open="in(" close=")" separator=",">
          #{deptId}
          </foreach>
      AND name 
      NOT IN
        ("天干物燥")
      </where> 
  </select>

下面这个未测试 ,是别人写的(NOT IN)

image.png


目录
相关文章
|
XML SQL Java
Mybatis 传参方式
多个参数,那也就是使用注解@Param取名字解决即可。
128 1
|
6月前
|
SQL Java 数据库连接
MyBatis动态SQL字符串空值判断,这个细节99%的程序员都踩过坑!
本文深入探讨了MyBatis动态SQL中字符串参数判空的常见问题。通过具体案例分析,对比了`name != null and name != &#39;&#39;`与`name != null and name != &#39; &#39;`两种写法的差异,指出后者可能引发逻辑混乱。为避免此类问题,建议在后端对参数进行预处理(如trim去空格),简化MyBatis判断逻辑,提升代码健壮性与可维护性。细节决定成败,严谨处理参数判空是写出高质量代码的关键。
797 0
|
SQL Java 关系型数据库
mybatis中<if>条件判断带数字的字符串失效问题
MySQL数据库使用Mybatis查询拼接select语句中进行`<if>条件拼接`的时候,发现带数字的或者带单个字母的字符串失效问题。 举例说明:我`Log对象`有个属性`accountId是字符串类型`,假设我给它赋值为“1”,按常理sql拼接的`应该是and account_name = 'unmadmin'` ,然而实际判断拼接的`却是and account_name != 'unmadmin'`,明显感觉问题出在这里`and log.accountId == '1'` 这里校验失败了,或者说失效了,估计很多人会踩坑,那么为什么呢?不应该啊?所以此刻就是为了定位它原因。
315 1
|
SQL 关系型数据库 MySQL
mybatis学习(21):MySQL 字符串 转换 CAST与CONVERT 函数的用法
mybatis学习(21):MySQL 字符串 转换 CAST与CONVERT 函数的用法
1432 0
|
XML Java 数据库连接
mybatis传参为map的写法
mybatis传参为map的写法
167 0
|
SQL XML Java
记一次在mybatis中使用String字符串作为sql语句 in关键字 后面参数的事故
记一次在mybatis中使用String字符串作为sql语句 in关键字 后面参数的事故
453 0
|
SQL Java 数据库连接
Mybatis传入数组参数
Mybatis传入数组参数
394 0
|
SQL Java 数据库连接
对于mybatis if标签对 byte int 等非字符串和字符串判断的问题
对于mybatis if标签对 byte int 等非字符串和字符串判断的问题
289 0
|
XML Java 数据库连接
mybatis接口方法参数传参解读
mybatis接口方法参数传参解读
|
SQL Java 数据库连接
五、MyBatis获取参数值的两种方式以及传参情况
${}的本质就是字符串拼接,#{}的本质就是占位符赋值。
444 0
五、MyBatis获取参数值的两种方式以及传参情况