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

编程教程 > Java (2598) 2024-11-26 14:39:04
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 

实实在

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Java编程之MyBatis框架sql中变量引用方式#{}与${}的区别
在Java编程中,ORM框架MyBatis处理@Select注解中的动态sql处理方法
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java编程之java static关键字,Java编程,static关键字
spring boot框架整合MyBatis数据库暂时选用MySQL
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R
java编程为啥会出现spring框架,为什么要有Spring?
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt