问题遇到的现象和发生背景
MyBatis模糊查询问题
测试按照用户名或者地址时,发现传入的参数有问题,导致查询不出来
问题相关代码
List<Users> getByNameOrAddress(
@Param("columnName")
String columnName,
@Param("columnValue")
String columnValue);
<select id="getByNameOrAddress" resultType="users">
select id,username,birthday,sex,address
from users
where ${columnName} like concat('%',#{columnName},'%')
</select>
测试
@Test
public void test3(){
List<Users> list = usersMapper.getByNameOrAddress("address","市");
list.forEach(users -> System.out.println(users));
}
运行结果及报错内容
==> Preparing: select id,username,birthday,sex,address from users where address like concat('%',?,'%')
==> Parameters: address(String)
<== Total: 0
这里Parameters传入的本来应该是”市“,居然变成了第一个参数address,所以一个也查不出来,半天找不出自己的错