MyBatis之模糊查询

本文最后更新于:1 年前

模糊查询需要使用 ${} 取值,与 sql 进行拼接。在使用 ${} 时,如果参数是 String 类型,即使只有一个参数也需要使用 @Param 注解声明参数的 key ,同时需要用parameterType 声明参数类型。

模糊查询案例

DAO接口

1
2
3
4
5
6
7
8
public interface MemberDAO {

//根据昵称查询用户信息——模糊查询
// 模糊查询需要使用${}取值,与sql进行拼接
// 在使用${}时,即使只有一个参数也需要使用@Param注解声明参数的key(非String对象参数可以不用声明)
public List<Member> searchMemberByNick(@Param("keyWord") String keyWord);

}

映射文件

MemberMapping.xml

测试

MemberDAOTest.java

#{}和${}的区别

  • ${key} 获取参数时,先获取参数的值拼接到SQL语句中,再编译执行SQL语句。(可能引起SQL注入问题)
  • #{key} 获取参数时,先完成SQL编译(预编译),预编译之后再将获取的参数设置到SQL与中 ,可以避免SQL注入问题

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!