返回顶部
首页 > 资讯 > 精选 >mybatis中关于in的使用方法有哪些
  • 329
分享到

mybatis中关于in的使用方法有哪些

2023-07-05 06:07:09 329人浏览 泡泡鱼
摘要

本篇内容主要讲解“mybatis中关于in的使用方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis中关于in的使用方法有哪些”吧!mybatis in的使用方法很多人都想着拼

本篇内容主要讲解“mybatis中关于in的使用方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis中关于in的使用方法有哪些”吧!

    mybatis in的使用方法

    很多人都想着拼接字符串用比如in(‘1’,‘2’)这样的方式去获取数据,其实没有这个必要,mybatis有foreach方法来自动用这样的数据

    如下:

    比如传入的是roleIdList

    //上面省略xxxxxWHERE ROLE_ID in        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">            #{item}        </foreach>

    mybatis使用in做范围查询的坑

    错误展示

    List<WmRecommendpic> selectPicListByMap(@Param("recommendIds")String recommendIds);<select id="selectPicListByMap" resultType="xx.xx.WmRecommendpic"     parameterType="java.util.Map">                SELECT * FROM `WmRecommendpic`         WHERE type_id IN (            SELECT DISTINCT type_id FROM `wm_relationship`             WHERE recommend_id IN (#{recommendIds})            AND is_valid=TRUE)        AND is_valid=TRUE        ORDER BY id ASC</select>

    由于#是不能识别的 所以有两种改法

    改法1

    <select id="selectPicListByMap" resultType="xx.xx.WmRecommendpic"     parameterType="java.util.Map">                SELECT * FROM `WmRecommendpic`         WHERE type_id IN (            SELECT DISTINCT type_id FROM `wm_relationship`             WHERE recommend_id IN (${recommendIds})            AND is_valid=TRUE)        AND is_valid=TRUE        ORDER BY id ASC</select>

    为啥能这样改?

    当参数采用:#{} : 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符 。${}: 仅仅为一个纯碎的 string 替换,在动态 sql 解析阶段将会进行变量替换。

    这种改法看似简单,但是会有安全隐患,容易遭黑客跨脚本攻击。

    所以推荐第二种改法。

    改法2

    List<WmRecommendpic> selectPicListByMap(Map<String,Object> map);
    Map<String,Object> map = new HashMap<>();map.put("recommendIds", recommendId.split(","));return this.dao.selectPicListByMap(map);
    <select id="selectPicListByMap" resultType="cn.smarthse.modules.platfORM.entity.apps.WmRecommendpic" parameterType="java.util.Map">SELECT * FROM `wm_recommendpic` WHERE type_id IN (SELECT DISTINCT type_id FROM `wm_relationship` WHERE recommend_id IN <foreach item="recommendId" index="index" collection="recommendIds"   open="(" separator="," close=")">                #{recommendId}       </foreach> AND is_valid=TRUE)AND is_valid=TRUEORDER BY id ASC</select>

    这里还是使用#{},这样就不会遭受跨脚本的攻击了。

    到此,相信大家对“mybatis中关于in的使用方法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: mybatis中关于in的使用方法有哪些

    本文链接: https://lsjlt.com/news/350130.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • mybatis中关于in的使用方法有哪些
      本篇内容主要讲解“mybatis中关于in的使用方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis中关于in的使用方法有哪些”吧!mybatis in的使用方法很多人都想着拼...
      99+
      2023-07-05
    • mybatis中关于in的使用方法及说明
      目录mybatis in的使用方法mybatis使用in做范围查询的坑错误展示改法1改法2总结mybatis in的使用方法 很多人都想着拼接字符串用比如in(‘1&rs...
      99+
      2023-02-27
      mybatis in mybatis使用in
    • angularJs中关于ng-class的使用方式有哪些
      小编给大家分享一下angularJs中关于ng-class的使用方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在开发中...
      99+
      2024-04-02
    • 基于jQuery中ajax相关方法有哪些
      这篇文章主要介绍基于jQuery中ajax相关方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前提条件话说是jquery中的ajax方法,那么前提条件当然是引入jquery啦...
      99+
      2024-04-02
    • 关于EntityWrapper的in用法
      目录EntityWrapper的in用法mybatis-plus EntityWrapper in举个例子EntityWrapper的in用法 EntityWrapper<Us...
      99+
      2024-04-02
    • Java中Static关键字使用的方法有哪些
      本文小编为大家详细介绍“Java中Static关键字使用的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中Static关键字使用的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。&nb...
      99+
      2023-07-05
    • mybatis plus in方法使用详解
      如果是List类型的String,例如:List<String>这种类型的,就直接放值就可以了,本文讲的是当你查询到的是一个list集合如何遍历取值,否则要写sql和接口...
      99+
      2024-04-02
    • mybatis中使用大于小于等于的正确方法
      在mybatis中sql是写在xml映射文件中的,如果sql中有一些特殊字符的话,在解析xml文件的时候就会被转义,如若不希望被转义,那该怎么办呢? 方法一:使用特殊转义字符 例如...
      99+
      2024-04-02
    • mybatis中使用not in与 in的写法说明
      目录使用not in与 in的写法in的用法not in的用法使用in查询时的注意事项当查询的参数只有一个时 当查询的参数有多个时使用not in与 in的写法 首先声明我...
      99+
      2024-04-02
    • mybatis分页的方法有哪些
      这篇文章主要讲解了“mybatis分页的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatis分页的方法有哪些”吧!mybatis分页的3种方式是:1、使用Limit分页,其...
      99+
      2023-07-05
    • Python关于字典的操作方法有哪些
      这篇文章主要讲解了“Python关于字典的操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python关于字典的操作方法有哪些”吧!初始化# 最常用这种my_objec...
      99+
      2023-07-05
    • MyBatis中有关int和Integer的使用方式
      目录有关int和Integer的使用int和Integer的区别关于Integer和int的比较 总结有关int和Integer的使用 int 类型,在默认情况下不赋值为0...
      99+
      2023-05-13
      MyBatis中int int和Integer使用 MyBatis中Integer
    • Java this关键字的使用方法有哪些
      这篇文章主要介绍“Java this关键字的使用方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java this关键字的使用方法有哪些”文章能帮助大家解决问题。Boy类...
      99+
      2023-06-26
    • php中关于算法面试题的有哪些
      这篇文章主要介绍了php中关于算法面试题的有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境...
      99+
      2023-06-14
    • Javascript中字符串相关常用的使用方法有哪些
      小编给大家分享一下Javascript中字符串相关常用的使用方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JavaScript的内置功能之一就是字符串连接,如果用‘+'连...
      99+
      2024-04-02
    • MyBatis中的占位符入参方法有哪些
      本篇内容主要讲解“MyBatis中的占位符入参方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis中的占位符入参方法有哪些”吧!前言#{}占位符会被解析为JDBC中的预编译语句...
      99+
      2023-07-05
    • 关于@JSONField和@JsonFormat的使用区别有哪些
      这篇文章主要介绍“关于@JSONField和@JsonFormat的使用区别有哪些”,在日常操作中,相信很多人在关于@JSONField和@JsonFormat的使用区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
      99+
      2023-06-25
    • mybatis关于Criteria使用的小坑
      目录关于Criteria使用的小坑关于Criteria使用的注意点关于Criteria使用的小坑 在用Criteria时,相关代码如下: final RolePermission...
      99+
      2024-04-02
    • 关于TransparentBlt的使用方法
      TransparentBlt是GDI函数之一,用于在Windows平台上绘制透明图像。它可以将源图像的一部分或全部绘制到目标设备上,...
      99+
      2023-08-08
      TransparentBlt
    • python关键字参数的使用方法有哪些
      这篇“python关键字参数的使用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python关键字参数的使用方法有...
      99+
      2023-06-30
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作