【SSM】09-Mybatis实现模糊查询的两种方法

前言

声明:本专栏文章均为观看动力节点王鹤老师三大框架的视频所撰写的笔记,笔者实力有限,内容如有错误欢迎各位小伙伴在评论区指出。

视频链接:SSM-Mybatis

相信大家都进行过关键字搜索,而且大部分时间我们都无法做到精准搜索,因此实现关键字搜索的模糊查询操作可谓是相当重要的了,下面就一起看一下Mybatis中如何实现这一操作的。


1、模糊查询的第一种方式

首先回顾一下sql中的模糊查询,如下

select * from student where name like "%力"

Mybatis中,第一种方式就是在java代码的参数中写好like后面的内容,然后以参数的的形式传入mapper文件 进行拼接。

示例:

dao接口的模糊查询方法

//like第一种方式
List<Student> selectLikeOne(@Param("name") String name);

mapper文件

<!--like第一种方式-->
    <select id="selectLikeOne" resultType="com.bjpowernode.domain.Student">
        select * from student where name like #{name}
    </select>

Test测试方法

@Test
    public void testLikeOne(){
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentDao dao  = sqlSession.getMapper(StudentDao.class);

        String name="%李%";
        List<Student> students = dao.selectLikeOne(name);

        sqlSession.close();

        students.forEach( stu-> System.out.println(stu));
    }

2、模糊查询的第二种方式

Mybatis中第二种模糊查询的方法不是在java代码中,比如上面的测试方法里面给出模糊查询的完整内容。而是将匹配符放在mapper文件中,然后只把需要匹配的关键字暴露出来自定义即可,显然第二种方式更具有体验感。

示例:

dao接口方法

//like第二种方式
    List<Student> selectLikeTwo(@Param("name") String name);

mapper文件,注意:sql语句like的写法

<!--like第二种方式-->
    <select id="selectLikeTwo" resultType="com.bjpowernode.domain.Student">
        select * from student where name like "%" #{name} "%"
    </select>

测试方法, 注意:这里的name的内容不需要在加入%符号,只需要匹配的关键字即可

@Test
    public void testLikeTwo(){
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        StudentDao dao  = sqlSession.getMapper(StudentDao.class);

        String name="李";
        List<Student> students = dao.selectLikeTwo(name);

        sqlSession.close();

        students.forEach( stu-> System.out.println(stu));
    }

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值