关于 #{} 和 ${} 就是 jdbc 中的预编译和非预编译
1. 表达式: name like"%"#{name}"%"
打印的日志
==> Preparing: select * from user WHERE name like"%"?"%"
==>Parameters: 傻 (String), 1(Integer)
能够查询出来, 没有问题, 这是使用了占位符来占位, 写成 SQL 就是: name like "%" '傻' "%"
2. 表达式: name like '%${name}%'
- Preparing:select * from userWHERE name like '% 傻 %'
- Parameters:
使用 $ 进行字符串的拼接, 直接把传入的值, 拼接上去了
3, 使用 bind 标签
<bind name="username" value="'%' username+'%'" />
感觉使用模糊查询的时候, 可以直接对传递的参数进行拼接比较方便
来源: http://www.bubuko.com/infodetail-2935023.html