在mybatis中使用模糊查询like还是比较的方便,灵活的
1、第一种方式 :在Java代码指定拼接内容
在接口中
List<user>selectLike(String name);
@Test
public void selectLike(){
SqlSession sqlSession = mybatisUtils.getSqlSession();
userDao user = sqlSession.getMapper(userDao.class);
List<user> userList = user.selectLike("王%");
for(user users: userList){
System.out.println(users);
}
sqlSession.close();
}
在java代码指定拼接的内容,直接当参数传入。
在mapper文件中
<select id="selectLike" resultType="cn.com.Ycy.mybatis.domain.user">
select * from user where username like #{name};
</select>
2、第二种方式:在mapper文件中拼接like内容
在mapper文件中
<select id="selectLike2" resultType="cn.com.Ycy.mybatis.domain.user">
select * from user where username like #{name} "%";
</select>
也是可以使用SQL的函数,CONCAT() 函数用于将多个字符串连接成一个字符串
<select id="selectLike2" resultType="cn.com.Ycy.mybatis.domain.user">
select * from user where username like concat(#{name},'%')";
</select>
在Java代码中只需要传入需查询的参数即可,不用在Java在代码拼接like内容。
@Test
public void selectLike2(){
SqlSession sqlSession = mybatisUtils.getSqlSession();
userDao user = sqlSession.getMapper(userDao.class);
List<user> userList = user.selectLike2("王");
for(user users: userList){
System.out.println(users);
}
sqlSession.close();
}