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
猜你喜欢
- 在学会了java中io流的使用后,我们对于数组的排序,又多了一种使用方法。大家知道流处理数据的效率是比较理想的,那么在具体操作数组排序上,很
- 目录ShutdownHook介绍ShutdownHook原理ShutdownHook的数据结构与执行顺序ShutdownHook触发点Shu
- 小编为面试Java程序员的朋友们整理了2017非常热门的面试中的笔试试题,如果你是一个正在准备面试Java程序员的读者,赶快学习一下吧。1,
- 个人理解:把一个类里的多个命令分离出来,每个类里放一个命令,实现解耦合,一个类只对应一个功能,在使用命令时由另一个类来统一管理所有命令。缺点
- 安装nodejs首先电脑中需要安装nodejs,这个就不多提了,windows就是下载node.exe,一步步安装就可以了。如需安装可参考一
- 一、系统介绍1.开发环境开发工具:Eclipse2021JDK版本:jdk1.8Mysql版本:8.0.132.技术选型Java+Swing
- 本文为大家分享了Java实现文件上传下载功能的具体代码,供大家参考,具体内容如下前端通过form表单的enctype属性,将数据传递方式修改
- 承接上文 传送门一.完善登录功能按照常理,只有登陆过后才能进入首页,若没有登陆则应当直接跳转到登陆页面,这样的场景不就完美契合过滤器的功效吗
- 就网络和应用程序而言,键盘快捷键很重要,今天我们要谈的便是让这类快捷键得以在Flutter运作的小部件:Focus、Shortcuts和Ac
- MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作。为什么要
- 一,使用注解: 在spring的配置文件applicationContext.xml中,加入注解扫描。配
- import java.io.BufferedInputStream;import java.io.BufferedOutputStream
- FrameLayout 在这个布局中,所有的子元素都不能被指定放置的位置,他们统统防御这块区域的左上角, 并且后面的子元素直接覆盖在前面的子
- 注解从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什
- Spring Data Jpa 自定义方法的实现最近项目中用到了Spring Data JPA,在里面我继承了一个PagingAndSort
- 1.最近的项目中,有一个Activity用到Fragment+ViewPager,其中一个fragment中实现了视频播放的功能,包含有Su
- 绝对路径:不可改变的路径本地绝对路径:增加盘符的路径(e:/test/test.html)网络绝对路径:增加协议,IP地址,端口号的路径(h
- 微服务通过Feign调用进行密码安全认证在项目中,微服务之间的通信也是通过Feign代理的HTTP客户端通信,为了保护我们的业务微服务不被其
- 前言windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本程序参考《扫雷》的规则进行了简化,用java语言实现,采用了swing技术进
- 本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下首先获取文件夹下面的所有类型相同的excel,可以