0
点赞
收藏
分享

微信扫一扫

后端接收多个id在数据库中查询数据返回

龙毓七七 2022-04-27 阅读 69
java

controller接收的参数:

@RequestParam(value = "ids",required = false) String ids

service和mapper

    List<TBizMaterial> getOne(@Param("ids") List<Long> ids);

service中的方法中的ids用工具类调用分割存入一个list集合中

//controller调用service中的方法
tBizMaterialService.getOne(Util.ids2LongList(ids))
  • 把多个id当成String传过来
  • 格式是这样的:"1,2,3,4"
  • 然后用一个工具类把它们分割开存在一个list集合中

工具类:

/**
     * 字符串 ids 到 List<Long> 的转换
     *
     * @param ids
     * @return
     */
    public static List<Long> ids2LongList(String ids){

        if(ids != null){

            ids = ids.replaceFirst("\\[","").replaceFirst("\\]","");

            String[] idArray = ids.split(",");
            List<Long> idList = new ArrayList<Long>();
            for(String id : idArray){
                idList.add(Long.parseLong(id));
            }
            return idList;
        }
        return Arrays.asList();
    }

mapper.xml

<if test="ids != null and ids.size() > 0">
           and id in
            <foreach item="id" index="index" collection="ids" open ="(" separator="," close=")">
                #{id}
            </foreach>
        </if>

xml中使用foreach循环将其遍历查询

举报

相关推荐

0 条评论