mybatis collection_(史上最详细)SpringBoot使用mybatis实现in操作

v2-458cadc41402d40da566ae478c159d90_1440w.jpg?source=172ae18b

今天讲一下mybatis的in操作,有坑呀。博主用了三天解决了一个in操作的问题,下面为大家详细讲解。

在mysql中想要查询多条语句,我们可以使用in,如这条语句:

select * from t_menu where id in (1,2,3,4)

查询结果:

v2-d7c348871d61d0bcb88b2409af17a8b3_b.jpg

然而,在mybatis中是不支持这样传参数的,不过mybatis提供了foreach语句实现in查询。

1.foreach属性

foreach元素的属性主要有item、index、collection、open、seqarator、close;

v2-c2750c025b1e465f9e7781e759f1c7fa_b.jpg

操作手册:

最关键的是collection属性,该属性必须指定,有以下三种情况:

  1. 如果传入的是单参数,且类型为list时,collection属性值为list;

2. 如果传入的是单参数,且类型为array数组时,属性值为array;

3. 如果传入多个参数时,我们可以封装为map。

接下来,将详细的讲解如何使用mybatis实现mysql的in操作。

2.配置环境

添加mybatis和mysql依赖

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

特别注意:涉及到批量操作时,需要加入圈中所属性

v2-150516c89345b1ff91eab83a83dc65a5_b.jpg

3.编写接口

查询菜单接口:

List<MenuDo> getMenuList(List<Integer>mid);

编写mapper:

<select id="getMenuList" resultType="com.share.core.pojo.MenuDo">
    SELECT
      *
    FROM
    t_menu
    WHERE
    id IN
    <foreach item="mid" collection="list" index="index" open="(" close= ")" separator=",">
#{mid}
    </foreach>

v2-b1ff1c387ff3a474aa6d62c3e24cd29d_b.jpg

v2-de36eae5bb6406f043e6d2a5792379d4_b.jpg

到此,mybatis使用in操作就完成了。

4.避免踩坑

上面提到博主遇到了坑,贴一张之前踩坑的截图。

v2-fbf9cf57d128968827935e9e62af142d_b.jpg

因为博主喜欢对其标签,用tab了两下,接下来执行结果:

注释报sql语句错误,参数的空格间隙过大,复制到mysql中,也是提示参数不对。用了replace去除空格也不行,后来发现是不能有空格,xml文件后把空格带进sql中,从而查询不出结果。

------------------------------------end----------------------------------------------------

到此,springboot使用mybatis的in操作就结束了哦,如果您觉得对您有所帮助,可以关注下博主的公众号哦,感谢支持。拜托了

v2-6e288fd0425544ccd4fef0440159f5e8_b.png

个人公众号,努力的小蚂蚁

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值