Mybatis中SQL语句中#与$的区别

news/2025/6/17 13:20:16

相同点:都属于可以获取参数属性

#仅引用,在SQL语句中替代占位符的数值(赋值)

${attribute} 属于字符串拼接SQL,而非预编译占位符,会有注入攻击问题,不建议在常规SQL中使用,常用于可解决动态生降序问题。

但在动态表查询中会使用$

$符号注入攻击

<select id="selectUsersByKeyword" resultType="user">SELECT * FROM t_userWHERE name = '${name}' <!-- 会存在注入攻击  比如传入参数是 【String name = "tom' or '1'='1";】-->
</select>

以下为查询动态表:

    // 演示一个$符号使用场景,动态表查询@Select("select * from ${tableName}") // <select>public List<Map<String,Object>> findData(@Param("tableName") String tableName);
        List<Map<String, Object>> list = mapper.findData("t_emp");for (Map<String, Object> map : list) {System.out.println(map);}

根据传递的表名不同,查询到不同的内容

 

文章来源:https://blog.csdn.net/m0_58574228/article/details/122114542
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-3475553.html

相关文章

默认分页限制每页500条数据,解除分页限制,Page分页限制

今天查询分页显示&#xff0c;把每页设置为1000条&#xff0c;结果就查出来500条&#xff0c;page默认最多每页显示500条 解决方法&#xff1a; MybatisPlusConfig类中 paginationInterceptor.setLimit(-1);

人工智能资料汇总(持续更新中)

人工智能资料汇总&#xff08;百度云盘&#xff09;&#xff1a; https://mp.weixin.qq.com/s/9NotiYPjXk4ImE8G1egJZg 由于链接容易失效&#xff0c;可以关注Taily老段的微信公众号&#xff0c;发消息获取资料。 深度学习的视频&#xff1a; 北京大学 人工智能实践&#xf…

封装自动提交与手动提交的Mybatis工具类

public class MybatisUtils {//获得SqlSession工厂private static SqlSessionFactory factory;//创建ThreadLocal绑定当前线程中的SqlSession对象private static final ThreadLocal<SqlSession> tl new ThreadLocal<SqlSession>();static {try {InputStream is R…

灵活使用Tensorflow执行梯度下降算法

之前写过有关tensorflow中各种梯度的意义了&#xff0c;这里结合一下梯度下降算法&#xff0c;讲一下如何使用tensorflow进行相关梯度下降算法的实验。 还是再啰嗦一遍吧。。嫌不够仔细的可以参见&#xff1a; https://blog.csdn.net/edward_zcl/article/details/90345318 声…

Mybatis插件PageHelper的使用

PageHelper是适用于MyBatis框架的一个分页插件&#xff0c;使用方式极为便捷&#xff0c;支持任何复杂的单表、多表分页查询操作。 PageHelper中提供了多个分页操作的静态方法入口。 pom.xml中引入PageHelper依赖。 <dependency><groupId>com.github.pagehelper<…

matlab程序加速与优化

其实自己写matlab也有两年多时间了&#xff0c;虽然基本都能做到随用随会&#xff0c;满足基本所有的功能需求。但是作为一个通用计算平台&#xff0c;matlab其实有很多特定用途的工具箱&#xff0c;以及加速运算的小技巧&#xff0c;不同于一些语法或者函数用法的学习&#xf…

baseservlet封装(只关注参数传递,不关注参数获取)

public class BaseServlet extends HttpServlet {SneakyThrowsOverrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1.获取请求的方法名称String methodName getMethodName(req);System.out.println…