返回顶部
首页 > 资讯 > 数据库 >MySQL模糊查询的三种方式
  • 495
分享到

MySQL模糊查询的三种方式

mysqlmybatisjava 2023-09-01 16:09:19 495人浏览 安东尼
摘要

文章目录 一、Mybatis常用模糊查询方法1.使用concat("%",#{name},"%")2.使用'%${name}%'3.使用"%"#{name}"%"总结:

文章目录

一、mybatis常用模糊查询方法

  • 直接使用 % 字符串拼接,如 ‘%’#{name}‘%’ 或 “%”#{name}“%”,单引号或双引号都可以。
  • 使用’%${name}%',会有sql注入危险
  • 使用函数concat拼接concat(“%”,#{name},“%”)

1.使用concat(“%”,#{name},“%”)

UserMapper.xml文件:

 <select id="selectUsersByCondition" resultType="qin.com.entity.Users" parameterType="Users">        select * from users        <where>            <if test="name != null and name != ''">                                and name like concat("%",#{name},"%")            if>            <if test="sex != null and sex != ''">                and sex = #{sex}            if>            <if test="birthday != null and birthday != ''">                and birthday = #{birthday}            if>            <if test="createTime != null and createTime != ''">                and createTime>=#{createTime}            if>            <if test="updateTime != null and updateTime != ''">                and updateTime <= #{updateTime}            if>        where>        order by id desc    select>

Test测试代码

@Test    public void testSelectUsersByCondition() {        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");        UsersService usersService =(UsersService) applicationContext.getBean("usersService");        Users users = new Users();        users.setName("小");        List<Users> list = usersService.selectUsersByCondition(users);        list.forEach(users1 -> System.out.println("根据条件查询用户信息:"+users1));    }

输出结果:
查询语句
==> Preparing: select * from users WHERE name like concat(“%”,?,“%”) order by id desc
==> Parameters: 小(String)
在这里插入图片描述

2.使用’%${name}%’

UserMapper.xml文件:

 <if test="name != null and name != ''">      and name like '%${name}%' if>

输出结果:
==> Preparing: select * from users WHERE name like ‘%小%’ order by id desc
==> Parameters:
在这里插入图片描述

3.使用"%“#{name}”%"

<if test="name != null and name != ''">   and name like "%"#{name}"%"if>

输出语句:
==> Preparing: select * from users WHERE name like “%”?“%” order by id desc
==> Parameters: 小(String)

在这里插入图片描述

总结

推荐使用第一和第三种方式

来源地址:https://blog.csdn.net/qq_43634655/article/details/126212894

您可能感兴趣的文档:

--结束END--

本文标题: MySQL模糊查询的三种方式

本文链接: https://www.lsjlt.com/news/389035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作