MybatisPlus #{param}和${param}的用法详解

作者:大佬,站住别动. 时间:2023-02-02 13:08:10 

作用

mybatis-plus接口mapper方法中的注解(如@Select)或者xml(如)传入的参数是通过#{param}或者${param}来获取值。

区别

1.解析方式:

#{param}:会进行预编译,而且进行类型匹配,最后进行变量替换,括号中可以添加映射类型如
#{param,javaType=int,jdbcType=NUMERIC}

${param}:只实现字符串拼接,并不进行数据类型匹配

${param}表达式主要用户获取配置文件数据,DAO接口中的参数信息,当 $ 出现在映射文件的 SQl 语句中时创建的不是预编译的 SQL ,而是字符串的拼接有可能会导致 SQL 注入的问题,所以一般使用 $ 接收 DAO 参数时,这些参数一般是字段名,表名等.例如 order by {column}

${} 获取 DAO 参数数据时,参数必须使用 @param 注解进行修饰

#{} 获取 DAO 参数数据时,假如参数个数多于一个,可有选择的使用@param

2.使用

#{param}:变量值的传递,必须使用#,使用#{param}就等于使用了PrepareStatement这种占位符的形式,提高效率。可以防止sql注入等等问题。

#{param}方式一般用于传入where条件参数值


@Select(
"<script>" +
"select * from student where id= #{param,javaType=int,jdbcType=NUMERIC}"+
"</script> ")

${param}:$只是只是简单的字符串拼接,要特别小心sql注入问题,对应非变量部分,只能用$。$方式一般用于传入数据库对象,比如这种group by 字段 ,order by 字段,表名,字段名等没法使用占位符的就需要使用${param}


<select id="getStatistics" resultType="map">
select count(*) from t_statistic group by ${param}
</select>

来源:https://blog.csdn.net/qq_31683583/article/details/105653063

标签:MybatisPlus,#{param},${param}
0
投稿

猜你喜欢

  • 基于Java汇总Spock框架Mock静态资源经验

    2023-11-25 04:42:29
  • C#探秘系列(三)——StackTrace,Trim

    2022-04-27 21:24:03
  • Spring Data JPA中 in 条件参数的传递方式

    2023-11-08 06:45:47
  • Android实现换肤的两种思路分析

    2023-03-25 13:54:18
  • Flutter投票组件使用方法详解

    2022-05-25 19:07:05
  • Android基于API的Tabs3实现仿优酷tabhost效果实例

    2021-07-31 18:51:02
  • Android Flutter实现五种酷炫文字动画效果详解

    2023-06-27 02:57:16
  • 浅谈C#中堆和栈的区别(附上图解)

    2022-02-15 14:05:09
  • Struts2+uploadify多文件上传实例

    2023-03-19 07:53:35
  • java HashMap通过value反查key的代码示例

    2022-06-07 08:50:55
  • 浅谈java项目与javaweb项目导入jar包的区别

    2023-11-11 11:06:19
  • 实例讲解Android中的View类以及自定义View控件的方法

    2023-08-11 06:26:42
  • android 实现控件左右或上下抖动教程

    2023-03-19 17:02:07
  • C语言数据结构实现银行模拟

    2023-04-16 17:25:49
  • javax.persistence中@Column定义字段类型方式

    2021-12-03 21:21:44
  • Android Wear计时器开发

    2023-04-10 01:22:21
  • JAVA OutputStreamWriter流的实现

    2021-08-12 19:45:47
  • SpringBean依赖和三级缓存的案例讲解

    2023-06-25 09:33:22
  • Java 使用IO流实现大文件的分割与合并实例详解

    2023-08-23 09:33:33
  • 详解java基于MyBatis使用示例

    2023-11-25 09:01:45
  • asp之家 软件编程 m.aspxhome.com