Mybatis中SQL语句LIKE模糊查询问题

Mybatis中SQL语句LIKE模糊查询问题

mybatis中向SQL语句中添加动态参数的方式

1、使用 “ #{} ”
        这种方式是使用占位符的方式预编译到SQL中,这种方式不能写在引号内,例如:WHERE name LIKE ‘%#{username}%’,这种方式是错误的,这个相当于查找name字段中含有“#{username}”,不能动态获取;
2、使用 “ ${} ”
        这种方式是通过字符串拼接得到SQL语句,但是会出现SQL注入的问题,但是可以使用在LIKE模糊查询中(不推荐),例如:WHERE name LIKE ‘% ${username}%’;
3、使用CONCAT ------ 推荐使用
        这种方式既能将需要的字符串拼接,还能使用 “ #{} ” 的方式,防止SQL注入,例如:WHERE name LIKE CONCAT(’%’, #{username}, ‘%’)。


版权声明:本文为yage124原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。