java之mybatis之模糊查询

1.在 mybatis 中,模糊查询可以有以下方式

(1).第一种,直接将封装好的条件传给 sql 语句

<select id="findByName" parameterType="string" resultType="User">
        select * from t_user where name like #{name}
 </select>

代码

@Test
    public void testFindLike() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.findByName","张%");
        for(User u:list){
            System.out.println(u);
        }
        session.close();
    }

(2)第二种, 使用字符串连接符 ${} 来实现

<select id="findByName1" parameterType="Map" resultType="User">
        select * from t_user where name like '${name}%'
</select>

代码

  @Test
    public void testFindLike1() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        Map map = new HashMap();
        map.put("name", "张");
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.findByName1",map);
        for(User u:list){
            System.out.println(u);
        }
        session.close();
    }

(3)第三种,使用 mysql 的字符串拼接函数实现

<select id="findByName2" parameterType="string" resultType="User">
        select * from t_user where name like concat(#{name},'%')
    </select>

代码

  @Test
    public void testFindLike2() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.findByName2","张");
        for(User u:list){
            System.out.println(u);
        }
        session.close();
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程大道

初识Zookeeper你应该了解的知识

ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能...

15210
来自专栏知了一笑

Java描述设计模式(08):桥接模式

10910
来自专栏Node开发

Redis 的持久化和主从复制

Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客户端请求时,所有操作都在内存当中进行,如下所示:

13610
来自专栏网站漏洞修补

APP渗透测试 验证码功能漏洞的检测与分析汇总

在对客户网站以及APP进行安全检测的同时,我们SINE安全对验证码功能方面存在的安全问题,以及验证码漏洞检测有着十多年的经验,在整个APP,网站的安全方面,验证...

17940
来自专栏品茗IT

SpringBoot入门建站全系列(二十一)Mybatis使用乐观锁与悲观锁

之前有两篇《SpringBoot入门建站全系列(三)Mybatis操作数据库》和《SpringBoot入门建站全系列(四)Mybatis使用进阶篇:动态SQL与...

19730
来自专栏Java3y

面试前必须要知道的Redis面试题

在前面学习我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间,并采用的是惰性删除+定期删除两种策略对过期键...

7120
来自专栏Java3y

Java阻塞队列学起来!

较长一段时间以来我都发现不少开发者对 jdk 中的 J.U.C(java.util.concurrent)也就是 Java 并发包的使用甚少,更别谈对它的理解了...

12440
来自专栏公众号文章

介绍一个超好用的orm库gorm【Golang 入门系列十二】

之前在已经介绍了用的github.com/go-sql-driver/mysql 访问数据库,不太了解的可以看看之前的文章 https://www.cnblog...

25930
来自专栏Java3y

为什么我这条SQL执行那么慢?

说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说...

7920
来自专栏老码农的一亩三分地

《细说PHP》第四版 样章 第18章 数据库抽象层PDO 5

PDO扩展类库为PHP访问数据库定义了一个轻量级、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,大...

9440

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励