MyBatis 小知识点补充(#{} 和 ${})

简介: MyBatis 小知识点补充(#{} 和 ${})

#{}

预编译处理,MyBatis 会帮我们做转义,防止 SQL 注入

// 指定参数
@Param("username") String name = "hsq"
// 修饰方法的注解
@Select("select * from users where username = #{username}")
// 实际执行的 SQL
select * from users where username = 'hsq'

${}

不会进行转义,字符直接替换


// 指定参数
@Param("username") String name = "hsq"
// 修饰方法的注解
@Select("select * from users where username = #{username}")
// 实际执行的 SQL,纯粹的 SQL 替换,以下 SQL 是错误的
select * from users where username = hsq

什么情况下需要用到 ${}

一般情况下,当 SQL 语句中的参数需要放在 ’ ’ 中时,用 #{} ,让 MyBatis 替我们进行转义,当参数不需要放在 ’ ’ 时,就可以用 ${} ,直接进行字符替换


简而言之,带 ’ ’ 的参数用 #{} ,不带 ’ ’ 的参数用 ${}


// 指定参数
@Param("username") String name = "hsq"
@Param("offset") int a = 3;
@Param("limit") int b = 30;
// 修饰方法的注解
@Select("select * from users where username = #{username} offset ${offset} limit ${limit}")
// 执行的 SQL
select * from users where username = 'hsq' offset 3 limit 30


目录
相关文章
|
SQL XML 存储
Mybatis知识点总结
Mybatis知识点总结
210 0
|
SQL XML Java
MyBatis知识点笔记
MyBatis知识点笔记
189 0
MyBatis知识点笔记
|
SQL XML 存储
Mybatis知识点全总结(二)
Mybatis知识点全总结
110 1
Mybatis知识点全总结(二)
|
SQL 缓存 Java
Mybatis核心知识点整理,常见面试题总结必备!
Mybatis核心知识点整理,面试必备! 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
227 0
Mybatis核心知识点整理,常见面试题总结必备!
|
XML SQL Java
Mybatis知识点全总结(四)
Mybatis知识点全总结
160 0
Mybatis知识点全总结(四)
|
SQL 存储 缓存
Mybatis知识点全总结(三)
Mybatis知识点全总结
213 0
Mybatis知识点全总结(三)
|
SQL XML Java
Mybatis知识点全总结(一)
Mybatis知识点全总结
235 0
Mybatis知识点全总结(一)
【测试开发】知识点-mybatis,XML 映射文件介绍
【测试开发】知识点-mybatis,XML 映射文件介绍
【测试开发】知识点-mybatis,XML 映射文件介绍
【测试开发】知识点-mybatis,全局配置文件介绍
【测试开发】知识点-mybatis,全局配置文件介绍
【测试开发】知识点-mybatis,全局配置文件介绍
【测试开发】知识点-mybatis,主要使用方式:接口式编程
【测试开发】知识点-mybatis,主要使用方式:接口式编程
【测试开发】知识点-mybatis,主要使用方式:接口式编程