模糊查询 ,like语句
模糊查询怎么写?
1.java代码执行的时候,传递通配符%
在接口中创建方法
/**
* 模糊查询
* @return
*/
List<User> getUserLike(String value);
写sql语句
<!--模糊查询-->
<select id="getUserLike" resultType="pojo.User">
select * from mybatis.User where name like #{value}
</select>
测试
//模糊查询
@Test
public void getUserLike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userLike = mapper.getUserLike("%王%");
for (User user : userLike){
System.out.println(user.getName());
}
sqlSession.close();
}
2.在sql语句中使用通配符
在java语句中传入通配符%,会导致sql注入问题,所以最好在sql语句中将通配符写死,不允许客户传入其他参数。
在接口中创建方法
/**
* 模糊查询
* @return
*/
List<User> getUserLike(String value);
写sql语句
<!--模糊查询-->
<select id="getUserLike" resultType="pojo.User">
select * from mybatis.User where name like "%"#{value}"%"
</select>
测试
//模糊查询
@Test
public void getUserLike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userLike = mapper.getUserLike("王");
for (User user : userLike){
System.out.println(user.getName());
}
sqlSession.close();
}
在sql中将通配符规定死,就可以避免用户输入的数据导致sql注入