美文网首页
mybatis 多条件查询

mybatis 多条件查询

作者: 笨的很想飞 | 来源:发表于2023-03-28 09:15 被阅读0次

MyBatis 中的多条件查询可以通过不同的方式来实现。下面介绍两种常用的方法。

  1. 使用 Map 传递参数
    第一种方法是使用 Map 来传递查询条件。具体步骤如下:


//1.在 Mapper 接口中定义查询方法,方法中的参数为一个 Map,其中 Map 的 key 为查询条件的名称,value 为查询条件的值。例如:
List<User> selectUsersByConditions(Map<String, Object> params);

//2.在 Mapper XML 文件中编写 SQL 语句,使用 <if> 标签来根据条件动态生成 SQL。例如:
<select id="selectUsersByConditions" resultType="User">
  select * from user
  <where>
    <if test="name != null and name != ''">
      and name like #{name}
    </if>
    <if test="age != null">
      and age = #{age}
    </if>
    <!-- 其他条件 -->
  </where>
</select>


//3.在调用查询方法时,将查询条件封装成一个 Map,并传入方法中。例如:
Map<String, Object> params = new HashMap<>();
params.put("name", "张三");
params.put("age", 18);
List<User> users = userMapper.selectUsersByConditions(params);


  1. 使用注解和 @Param 注解


//1.在 Mapper 接口中定义查询方法,方法的参数使用 @Param 注解来指定查询条件的名称。例如:
List<User> selectUsersByConditions(@Param("name") String name, @Param("age") Integer age);

//2.在 Mapper XML 文件中编写 SQL 语句,使用 ${} 占位符引用参数。例如:
<select id="selectUsersByConditions" resultType="User">
  select * from user
  where name like '%${name}%'
  <if test="age != null">
    and age = #{age}
  </if>
  <!-- 其他条件 -->
</select>

//3.在调用查询方法时,将查询条件作为方法参数传入。例如:
List<User> users = userMapper.selectUsersByConditions("张三", 18);


//4.需要注意的是,在使用第二种方法时要特别谨慎,因为 ${} 占位符会将参数直接拼接到 SQL 语句中,容易导致 SQL 注入漏洞。
因此,建议在使用时避免使用这种方法或者对输入的参数做严格的校验和过滤。


相关文章

  • mybatis

    mybatis 高级映射 一对一 一对多 mybatis generator 的使用 多个条件 or 连接查询 但...

  • mybatis常用条件查询总结(迭代一)

    目录1.mybatis中大于等于小于等于的写法2.mybatis动态查询条件组装3.mybatis批量条件4.my...

  • mybatis多条件联合查询

    mybatis多条件联合查询可以在后边直接跟条件: criteria.andUserNameEqualTo(use...

  • mybatis时间条件查询

    springboot项目地址 项目中mybaits经常用于时间查询,今天就做个总结方便以后可以复习 service...

  • mybatis多条件查询

    最近做项目,接口速度跟不上,用的是java,刚好可以学以下,问后台要了源码,自己捣鼓一下,我尝试写一个查询语句 我...

  • mybatis多条件查询

    在开发中,我们需要传过来的参数可能有很多,这里设置一个vo类型的包。将此类封装多个条件。在进行模糊分页查询的时候需...

  • Java代码提升小技巧

    一、MyBatis 不要为了多个查询条件而写 1 = 1 当遇到多个查询条件,使用where 1=1 可以很方便的...

  • JAVA规范写代码常用技巧,非常实用

    JAVA规范写代码常用技巧,非常实用 一、MyBatis 不要为了多个查询条件而写 1 = 1 当遇到多个查询条件...

  • mybatis-plus条件构造器EntityWrapper

    使用mybatis-plus查询时,当查询的条件在model中时,model放入括号内new EntityWrap...

  • mybatis字符串相等判断

    mybatis 的mapper文件中,一些查询的sql语句,需要我们编写查询的条件: 如下: and a.na...

网友评论

      本文标题:mybatis 多条件查询

      本文链接:https://www.haomeiwen.com/subject/ccmtddtx.html