Mybatis 如何传入字符串参数,分割并遍历

 更新时间:2022年01月21日 11:52:54   作者:hanKongbin  
这篇文章主要介绍了Mybatis 如何传入字符串参数,分割并遍历,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

如何传入字符串参数,分割并遍历

如前台传入字符串参数 

String str = "a,b,c,d,e,f";

现需将此参数作为查询语句的参数,

Select * from news where id in (${id})

使用该语句查询正常返回结果,但势必产生sql注入漏洞。

如修改为:

Select * from news where id in (#{id})

程序报错。

正确写为如下

id in
<foreach collection="str.split(',')"  item="item" index="index" open="(" separator="," close=")">#{item}</foreach>

Mybatis 传入分割字符串做参数

需求:更改指定一些客户的一个字段

设计:传参两个(一个需要更改字段,一个客户id字符串用","隔开)

问题:mybatis中sql语句里条件报错,原因是用了#{clientIds}传入sql中是字符串形式

where id in (#{clientIds}) 等于 where id in ("1,2,3,4") 报错

解决

方法1、客户id字符串在代码里分割成list,mybatis中list遍历

<foreach collection="clientIdList" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>

方法2、将字符串在mybatis里分割

<foreach collection="clientIds.split(',')" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>

方法3、sql注入,改为where id in (${clientIds})

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java线程中的常见方法(start方法和run方法)

    Java线程中的常见方法(start方法和run方法)

    这篇文章主要介绍了Java线程中的常见方法(start方法和run方法),文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • SpringBoot集成Swagger2生成接口文档的方法示例

    SpringBoot集成Swagger2生成接口文档的方法示例

    我们提供Restful接口的时候,API文档是尤为的重要,它承载着对接口的定义,描述等,本文主要介绍了SpringBoot集成Swagger2生成接口文档的方法示例,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 详解Spring Boot配置排序依赖技巧

    详解Spring Boot配置排序依赖技巧

    本篇文章主要介绍了Spring Boot配置排序依赖技巧,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • java网上图书商城(6)订单模块1

    java网上图书商城(6)订单模块1

    这篇文章主要为大家详细介绍了java网上图书商城,订单模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 图片验证码概述及实现步骤

    图片验证码概述及实现步骤

    本文主要介绍了图片验证码概述及实现步骤。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • JAVA进阶篇之详细了解File文件的常用API

    JAVA进阶篇之详细了解File文件的常用API

    这篇文章主要给大家介绍了关于JAVA进阶篇之详细了解File文件的常用API的相关资料,File用于表示文件系统中的一个文件或目录,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • iReport使用教程(示例教程)

    iReport使用教程(示例教程)

    在使用ireport的过程中,因为各种功能都要百度,但是大家使用的例子又千差万别让人很苦恼,所以用一个简单例子贯穿的展示一下ireport的常见功能
    2021-10-10
  • Java单例模式和多例模式实例分析

    Java单例模式和多例模式实例分析

    这篇文章主要介绍了Java单例模式和多例模式,结合实例形式分析了java单例模式与多例模式的定义及使用技巧,需要的朋友可以参考下
    2019-07-07
  • Java 重试框架 Sisyphus 配置的两种方式

    Java 重试框架 Sisyphus 配置的两种方式

    这一节让我们一起学习下 sisyphus 基于函数式的配置和注解式的配置。为了满足更加方便的配置,Retryer 类提供了许多可以配置的信息。下面一起进入文章了解详情内容
    2021-11-11
  • SpringBoot Admin 使用指南(推荐)

    SpringBoot Admin 使用指南(推荐)

    这篇文章主要介绍了SpringBoot Admin 使用指南(推荐),Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序,非常具有实用价值,需要的朋友可以参考下
    2018-01-01

最新评论