mybatis占位符#{}和${}的用法和区别
一、mybatis占位符#{}和${}
Mybatis框架中,提供了两种占位符:#{}和${},它们都可以用来替换SQL语句中的参数,从而实现动态SQL的目的。
二、#{}的用法
#{}是Mybatis框架中最常用的占位符,它可以用来替换SQL语句中的参数,使得SQL语句可以动态生成。它的使用方法也很简单,只需要在SQL语句中指定参数的位置,然后在参数的位置上使用#{}占位符,最后在查询时传入参数即可。例如:
String sql = "SELECT * FROM user WHERE name = #{name}";
List<User> list = sqlSession.selectList(sql, new Object[]{name});三、${}的用法
${}也是Mybatis框架中一种占位符,它可以用来替换SQL语句中的参数,使得SQL语句可以动态生成。它的使用方法也很简单,只需要在SQL语句中指定参数的位置,然后在参数的位置上使用${}占位符,最后在查询时传入参数即可。例如:
String sql = "SELECT * FROM user WHERE name = ${name}";
List<User> list = sqlSession.selectList(sql, new Object[]{name});四、#{}和${}的区别
1、#{}和${}都可以用来替换SQL语句中的参数,使得SQL语句可以动态生成。
2、#{}会对参数进行预处理,可以防止SQL注入攻击,而${}不会对参数进行预处理,存在SQL注入攻击的风险。
3、#{}可以支持多种数据类型,而${}只支持String类型。
4、#{}会自动添加单引号,而${}不会。
猜您想看
-
微信上的备忘录使用技巧
一、微信备忘录...
2023年05月15日 -
ppt嵌入音频和嵌入背景音乐有什么区别
嵌入音频和嵌入...
2023年07月22日 -
debug U命令如何查看源代码
U命令查看源代...
2023年05月25日 -
单片机实现远程智能自动浇花系统
一、介绍远程智...
2023年05月25日 -
单次发大量bool查询条件以及ES的java堆栈内存溢出怎么办
问题描述:在使...
2023年07月23日 -
如何在快捷指令中分离图像的 Alpha 通道?
如何在快捷指令...
2023年04月17日