1、模糊 like
模糊查询的实现有两种方式, 一是java代码中给查询数据加上"%"; 二是在mapper文件sql语句的条件位置加上“%”。
- 需求:查询姓名有"王"的
1.1、java代码中提供要查询的 "%王%"
- 接口方法:
List<UserInfo> selectLikeList(String name);
- mapper文件:
<select id="selectLikeList" resultType="com.rg.entity.UserInfo">
select * from UserInfo where Name like #{name}
</select>
- 测试方法:
@Test
public void selectAllByLike()
{
String likeName = "%王%";
List<UserInfo> userList = userInfoDao.selectLikeList(likeName);
userList.forEach(x -> System.out.println(x));
}
1.2、mapper文件中使用like name "%" #{xxx} "%"
- 接口方法:
List<UserInfo> selectLikeList2(String name);
- mapper文件:
<select id="selectLikeList2" resultType="com.rg.entity.UserInfo">
select * from UserInfo where Name like "%" #{name} "%"
</select>
- 测试方法:
@Test
public void selectAllByLike2()
{
String likeName = "王";
List<UserInfo> userList = userInfoDao.selectLikeList2(likeName);
userList.forEach(x -> System.out.println(x));
}
概括来讲、第一种方式就是事先在Java代码中把格式写好、直接传过去。第二种是只传入值、在mapper文件里写模糊查询格式、在MyBatis开发中、推荐使用第一种、也就是事先在Java代码中写好。