我是靠谱客的博主 过时母鸡,最近开发中收集的这篇文章主要介绍Mybatis(五 3)传入集合参数 和 模糊查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

foreach标签
一、接口定义:

public interface FlowerMapper {
    List<Flower>  selectMore(List<Integer>  li);
}

二、 mapper.xml

<mapper namespace="com.bjsxt.mapper.FlowerMapper2">

      <select id="selectMore" resultType="flower">

          SELECT  id,name,price  from  flower   where   id  in
            <!--
          你可以传递一个 List 实例或者数组作为参数对象传给 MyBatis。当你这么做的时候,MyBatis 会
自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作
为键。  
            collection填写foreach的对象,
-->
          <foreach collection="list" open="(" separator="," close=")" item="it">

               #{it}

          </foreach>

      </select>

</mapper>

三、测试代码

Sqlsession session = factory.openSession(true);
FlowerMapper mapper = session.getMapper(FlowerMapper.class);
List i = new ArrayList<Integer>();
i.add(1);
i.add(2);
i.add(7);
List<Flower> li = mapper.selectmore(i);
session.close();

 bind标签 来进行模糊查询
 


      <select id="selectMore2" resultType="flower">
            SELECT  id,name,price  from  flower
            <where>
                <!--两种模糊查询的方式-->
                  <if test="param1!=null and param1!=''">
                      <bind name="pa" value="'%'+param1+'%'"></bind>
                      <!--将value拼接好的数据赋给pa,所以下面使用的是pa-->
                      name  like  #{pa}
                  </if>
                <!--使用$而不是#, 相当于字符串拼接,可能会出现sql注入等问题,
                建议使用#,就是第一种方式-->
                <if test="param2!=null and param2!=''">
                   and  production  like  '%${param2}%'
                </if>
            </where>
      </select>

最后

以上就是过时母鸡为你收集整理的Mybatis(五 3)传入集合参数 和 模糊查询的全部内容,希望文章能够帮你解决Mybatis(五 3)传入集合参数 和 模糊查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部