MyBatis Like

网上搜索的两个文章:

文章一

Mybatis like查询官方文档没有明确的例子可循,网上搜索了很多,都不正确。
经过尝试,给出三种可靠可用的写法:

select * from person where name  like "%"#{name}"%"
select * from person where name  like '%'||#{name}||'%'
select * from person where name  like '%${name}%'

文章二

三种写法对比后,第一种属于预编译SQL,后两种都不是,因此推荐使用第一种写法。

--all 用$不能防sql注入  
select * from user where name like '%${name}%'  

--mysql,oracle (db2的concat函数只支持2个参数)  
select * from user where name like concat('%',#{name},'%')   

--oracle,db2  
select * from user where name like '%'||#{name}||'%'  

--SQL Server  
select * from user where name like '%'+#{name}+'%'  

--据说这种是预编译,有空测下  
select * from user where name like "%"#{name}"%"  

总结

发现预编译的好象不行。

猜你喜欢

转载自blog.csdn.net/kimsoft/article/details/75032366