码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis模糊查询

时间:2017-05-30 16:10:13      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:type   rom   存在   通过   username   style   ati   java   select   

select * from user where username like  ‘%#{name}%‘   这个不可以,因为#{}占位符方式的值,本身就带有‘‘   相对于:‘%‘张三‘%‘ 

 

官方文档使用${value}方式

select * from user where username like  ‘%${name}%‘   ${}的内容会原样输出,不会加‘‘,  但是存在注入的风险。

 

终极解决方式:

select * from user where username like  "%"#{name}"%"

 

注意:

 

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

 

 

 

${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

 

mybatis模糊查询

标签:type   rom   存在   通过   username   style   ati   java   select   

原文地址:http://www.cnblogs.com/lxboy2009/p/6920022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!