mybatis 中#与$的区别
时间:2022-07-23
本文章向大家介绍mybatis 中#与$的区别,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
先看一个例子
例如对于如下sql
select xxx t where t.name=#{name} order by ${name}
如果传入的值是张三,那么mybatis内部解析之后就会变成
select xxx t where t.name='张三' order by 张三
如你所见,他们之间大概有以下几点区别
-
#
将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。$
将传入的数据直接显示生成在sql中。 - 因为第一点,所以
#
更适合传递参数,而$
更适合传递数据库对象,如字段或者表名。 - 因为第一点,所以
#
方式能够很大程度防止sql注入,但$
不能 - 所以 一般能用
#
的就别用$
- 动态规划
- 如何使用MVP+Dagger2+RxJava+Retrofit开发(1)
- 蓝牙门禁Android客户端
- Java直接(堆外)内存使用详解
- Html再学
- com.android.ddmlib.InstallException: Unable to upload some APKs?
- GET/POST/g和钩子函数(hook)
- cookie和session
- Python Flask模块
- Java直接内存与非直接内存性能测试
- Elasticsearch——multi termvectors的用法
- Elasticsearch增删改查 之 —— Delete删除
- Elasticsearch增删改查 之 —— Get查询
- 实现两个N*N矩阵的乘法,矩阵由一维数组表示
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释