Java学习——Mybatis模糊查询
1、在测试文件中实现模糊查询
这种方式没什么特别需要注意的地方,把代码贴一下
方法类
@Select("select * from user where name like #{name}")
List<User> findUserByName(String name);
测试类
@Test
public void testFindUserByName(){
List<User> users = userDao.findUserByName("%q%");
for(User user:users){
System.out.println(user);
}
}
2、在配置文件中实现模糊查询(就是在编写sql语句时实现模糊)
配置文件:
<select id="findUserByCondition" resultType="com.mybatis.domain.User" parameterType="user">
select * from user where 1=1
<if test="name!=null">
and name like concat('%',#{name},'%')
</if>
</select>
测试类:
@Test
public void testFoundByCondition(){
User user = new User();
user.setName("little");
List<User> users = userDao.findUserByCondition(user);
for(User u:users){
System.out.println(u);
}
}
这里主要是sql语句的写法,最开始我写的%#{name}%
,报错,又改成‘%#{name}%’
,依旧报错。在网上查了一下,可以将#{}
改成${}
。这个方法可行,但用${}
会造成sql注入的问题,因此用concat方法连接。
相关参考:#{}和${}的区别