首页 > 代码库 > mybatis模糊查询
mybatis模糊查询
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模糊查询
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。