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>
测试方法:
@Testpublic 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>
测试方法:
@Testpublic void selectAllByLike2(){String likeName = "王";List<UserInfo> userList = userInfoDao.selectLikeList2(likeName);userList.forEach(x -> System.out.println(x));}
概括来讲、第一种方式就是事先在Java代码中把格式写好、直接传过去。第二种是只传入值、在mapper文件里写模糊查询格式、在MyBatis开发中、推荐使用第一种、也就是事先在Java代码中写好。