例子演示:
数据库:
接口文件:
/*模糊查询*/
List<fruits> getfruits(String value);
对应实现上述接口的.xml文件
方式1:
<select id="getfruits" resultType="fruits" >
select * from fruits where name like #{value}
</select>
对应测试文件(可测试通过):
@Test
public void getfruits() {
SqlSession sqlSession = mybatisUtils.getSqlSession();
fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
List<fruits> fruitsList = fruitsDao.getfruits("%w%");
for (fruits f : fruitsList) {
System.out.println(f);
}
sqlSession.close();
}
方式2:(亦测试通过)
<select id="getfruits" resultType="fruits" >
select * from fruits where name like "%"#{value}"%"
</select>
@Test
public void getfruits() {
SqlSession sqlSession = mybatisUtils.getSqlSession();
fruitsDao fruitsDao = sqlSession.getMapper(com.pojo.Dao.fruitsDao.class);
List<fruits> fruitsList = fruitsDao.getfruits("w");
for (fruits f : fruitsList) {
System.out.println(f);
}
sqlSession.close();
}
上面两种方式的测试结果:
综上,“#”起到防止SQL注入的作用,“%%”是模糊查询的固定搭配