=============== MyBatis模糊查询 =============== public interface MemberDao { ... public List searchByNick(@Param("nick") String nick); ... } public class MemberDaoTest { ... @Test public void testSearchByNick() { MemberDao dao = MyBatisUtil.getMapper(MemberDao.class); List members = dao.searchByNick("o"); System.out.println(members); } ... } ... ... % - 匹配任意一到多个字符 _ - 匹配任意一个字符 ${} - 先将参数拼接到SQL语句中,再编译SQL语句 #{} - 先编译SQL语句,再将参数设置到SQL语句中 不能写成'%#{nick}%',因为被单引号引起来的字符串一旦被编译,就无法再插入参数值。 应该写成'%${nick}%',先插参数值,让包含参数值的字符串参加编译。 能够被${}引用的参数,需满足以下三个条件之一: - 某个类的属性,有与名称对应的get方法; - HashMap中的键值对,通过键获取值; - 借助Param注解,显式指定名称。 运行测试用例。 例程:Dynamic