如何使用mybatis 查询参数为list集合的数据

如何使用mybatis 查询参数为list集合的数据

举例 如下:

package com.sky.mapper;

import com.sky.entity.SetmealDish;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface SetmealDishMapper {
    /**
     * 根据菜品id查询对应的套餐id
     *
     * @param dishIds
     * @return
     */
    //select setmeal_id from setmeal_dish where dish_id in (1,2,3,4)
    List<Long> getSetmealIdsByDishIds(List<Long> dishIds);
}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.SetmealDishMapper">
    <select id="getSetmealIdsByDishIds" resultType="java.lang.Long">
        select setmeal_id from setmeal_dish where dish_id in
        <foreach collection="dishIds" item="dishId" separator="," open="(" close=")">
            #{dishId}
        </foreach>
    </select>
</mapper>

ok

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 中,可以很方便地通过传入 List 集合作为条件查询数据。具体实现方式如下: 假设有一个实体类 User,其中有一个属性为 name,现在需要查询 name 在某个 List 中的所有 User。可以编写下面的 SQL 语句: ``` SELECT * FROM User WHERE name IN <foreach item="item" collection="list" open="(" separator="," close=")"> #{item} </foreach> ``` 这里使用MyBatis 的 foreach 标签,将 List 中的元素一个一个地遍历,并将其作为参数传入 SQL 语句中。其中,item 属性指定了遍历过程中的变量名,collection 属性指定了要遍历的集合,open 属性指定了集合开始时的字符串,separator 属性指定了元素之间的分隔符,close 属性指定了集合结束时的字符串。 在 Java 代码中,可以这样调用: ``` List<String> nameList = new ArrayList<>(); nameList.add("Tom"); nameList.add("Jerry"); List<User> userList = sqlSession.selectList("userMapper.selectByNameList", nameList); ``` 这里假设 User 对应的 Mapper 接口为 UserMapper,其中有一个名为 selectByNameList 的方法。在 XML 配置文件中编写对应的 SQL 语句,并将参数名设置为 list,如下所示: ``` <select id="selectByNameList" parameterType="java.util.List" resultType="User"> SELECT * FROM User WHERE name IN <foreach item="item" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> ``` 这样,当调用 selectByNameList 方法时,传入的 List 对象就会被解析并应用到 SQL 语句中,最终返回符合条件的 User 对象列表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值