Java编程之MyBatis框架sql中变量引用方式#{}与${}的区别

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1474)   2023-03-28 11:29:14
Java编程之MyBatis框架sql中变量引用方式#{}与${}的区别

#{}和 ${}传参的区别如下:
1.使用#传入参数是,sql语句解析变量时候将添加""包裹变量,当成字符串来解析,$则不会用""包裹;
2.#能使用PreparedStatement语句提高一定的效率;
3.#{}传参能防止sql注入,如果你传入的参数为 单引号',那么如果使用${},这种方式 那么是会报错的;
4.如果要做动态的排序,动态查询某个字段比如 order by column,这个时候务必要用${},select * from table order by 'name' ,这样是没用
5.从安全角度出发,能用#就不要用$;

总结:
简单来说#{} 解析的是占位符?可以防止SQL注入, 比如打印出来的语句 
select * from table where id=?

然而${} 则是不能防止SQL注入打印出来的语句 
select * from table where id=2 

实实在
标签: Java编程 mybaties
地址:https://www.leftso.com/article/116.html

相关阅读

Java编程之MyBatis框架sql中变量引用方式#{}与${}的区别
在Java编程中,ORM框架mybaties处理@Select注解中的动态sql处理方法
spring boot mybatis 整合使用讲解介绍,spring boot与mybaties的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个...
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
idea Mybatis generator插件的配置和使用,在eclipse中,我们可以在eclipse的插件市场安装一个Mybatis generator的插件。然后对Mybatis gen...
mybaties generator 表名/字段名下划线转驼峰,Spring Boot 2.0 整合 mybaties generator 表名/字段名下划线转驼峰 idea上的配置
spring boot框架整合mybaties数据库暂时选用MySQL
mybatis 开启自动驼峰转换默认情况下,mybatis需要在mapper xml文件中编写一堆的ResultMap来对应Java Bean和数据库字段的关系。在开启驼峰转换后就不需要resu...