广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatis的模糊查询mapper.xml的写法讲解
  • 823
分享到

MyBatis的模糊查询mapper.xml的写法讲解

2024-04-02 19:04:59 823人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis模糊查询mapper.xml的写法1.直接传参2.针对Mysql数据库的语句3.适用于所有数据库的则采用MyBatis的bind元素MyBatis在xml中模糊查询

MyBatis模糊查询mapper.xml的写法

模糊查询语句不建议使用${}的方式,还是建议采用MyBatis自带的#{}方式,#{}是预加载的方式运行的,比较安全,${}方式可以用但是有sql注入的风险!!!

1.直接传参

在controller类中


String id = "%"+ id +"%";
String name = "%"+ name +"%";
dao.selectByIdAndName(id,name);

在mapper.xml映射文件中


<select>
    select * from table wherer id=#{id} or name like #{name}
</select>

2.针对mysql数据库的语句

采用concat()函数,它可以将多个字符串连接成一个字符


<select>
    select * from table where name like concat('%',#{name},'%')
</select>

3.适用于所有数据库的则采用MyBatis的bind元素


public xx selectByLike(@Param("_name") String name);
<select id="selectByLike">
    <bind name="user_name" value="'%' + _name + '%'"/>
    select * from table where name like #{user_name}
</select>

其中_name为传递进来的参数,bind元素的value属性将传进来的参数和 '%' 拼接到一起后赋给name属性的user_name,之后可以在select语句中使用user_name这个变量。

bind元素也支持传递多个参数


public xx selectByLike(@Param("_name") String name, @Param("_note") String note);
<select id="selectByLike">
    <bind name="user_name" value="'%' + _name + '%'"/>
    <bind name="user_note" value="'%' + _note + '%'"/>
    select * from table where name like #{user_name} and note like #{user_note}
</select>

MyBatis在xml中模糊查询的常用的3种方式


<!-- ******************** 模糊查询的常用的3种方式:********************* -->
    <select id="getUsersByFuzzyQuery" parameterType="User" resultType="User">
        select <include refid="columns"/> from users
        <where>
            <!--
                方法一: 直接使用 % 拼接字符串
                注意:此处不能写成  "%#{name}%" ,#{name}就成了字符串的一部分,
                会发生这样一个异常: The error occurred while setting parameters,
                应该写成: "%"#{name}"%",即#{name}是一个整体,前后加上%
            -->
            <if test="name != null">
                name like "%"#{name}"%"
            </if>
            <!--方法二: 使用concat(str1,str2)函数将两个参数连接 -->
            <if test="phone != null">
                and phone like concat(concat("%",#{phone}),"%")
            </if>
            <!--方法三: 使用 bind 标签,对字符串进行绑定,然后对绑定后的字符串使用 like 关键字进行模糊查询 -->
            <if test="email != null">
                <bind name="pattern" value="'%'+email+'%'"/>
                and email like #{pattern}
            </if>
        </where>
    </select>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: MyBatis的模糊查询mapper.xml的写法讲解

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis的模糊查询mapper.xml的写法讲解
    目录MyBatis模糊查询mapper.xml的写法1.直接传参2.针对MySQL数据库的语句3.适用于所有数据库的则采用MyBatis的bind元素MyBatis在xml中模糊查询...
    99+
    2022-11-12
  • mybatis模糊查询like语句的写法
    这篇文章给大家分享的是有关mybatis模糊查询like语句的写法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。写法为:1、使用“${...}”,语法为“like '${...}'”;2、使用“#...
    99+
    2023-06-15
  • Mybatis-模糊查询的俩种方法
    方法一: 使用CONCAT(like concat) like concat (参数一,参数二,参数三):用于模糊查询,不推荐直接用like,所以用concat连接 1.参数一: 第一个基本上用 ‘%’ 2.参数二: 传入的参...
    99+
    2023-09-08
    mysql 数据库
  • Mybatis中的mapper模糊查询语句LIKE
    目录Mybatis mapper模糊查询语句LIKEmapper 模糊查询语句报错Mybatis mapper模糊查询语句LIKE 最近做学校安排的课程设计作业,用到SSM框架,在自...
    99+
    2022-11-12
  • Mybatis模糊查询Like的三种方式
    在实际项目中,我们会经常对数据做一些模糊查询的操作,这时候就需要利用到 like 字段,那么在Mybatis中,有哪些方式可以实现模糊查询呢?这里就简单的介绍下:Mybatis模糊查询Like的三种方式,如果对你有帮助,码文不易,请一键...
    99+
    2023-08-30
    mybatis mysql 数据库 模糊查询 spring boot
  • MyBatis使用Map与模糊查询的方法示例
    当我们的实体类、或者数据库里的表、字段或者参数很多,这个时候考虑使用map 一、使用map传参插入数据 1.编写Dao接口/Mapper层 使用Map做参数 //Dao接口/...
    99+
    2022-11-12
  • mybatis使用concat模糊查询的方法是什么
    本篇内容介绍了“mybatis使用concat模糊查询的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用concat 模糊查询&...
    99+
    2023-06-26
  • mybatis的动态SQL和模糊查询实例详解
    现在以一个例子来介绍mybatis的动态SQL和模糊查询:通过多条件查询用户记录,条件为姓名模糊匹配,并且年龄在某两个值之间。 新建表d_user: create table d...
    99+
    2022-11-11
  • SQL模糊查询的用法
    这篇文章主要介绍“SQL模糊查询的用法”,在日常操作中,相信很多人在SQL模糊查询的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL模糊查询的用法”的疑惑有所帮助!接...
    99+
    2022-10-18
  • Mybatis CURD及模糊查询功能的实现
    命名空间namespace: 配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致! 1.查询(select) select: 接...
    99+
    2022-11-12
  • MyBatis模糊查询的几种实现方式
    大家好呀,我是柚子,今天这篇文章总结MyBatis模糊查询的几种实现方式~ 文章目录 前言一、模糊查询的几种实现方式1.concat函数和#{}拼接的方式2.%和${}拼接的方式3.concat函数和${}拼接的方式4.||和...
    99+
    2023-08-18
    mybatis java spring boot
  • mybatis-plus指定字段模糊查询的实现方法
    mybatis-plus版本:3.3.0 oracle版本:11g 很常见的一个需求场景:某张表在前端显示时,查询条件中,往往name字段需要模糊查询,否则默认mybatis-plu...
    99+
    2022-11-13
  • Mysql模糊查询优化方法及测试详细讲解
    目录无优化左前缀like普通索引左前缀索引右后缀索引非索引优化LOCATEPOSITIONINSTR上文讲到了解决mysql 模糊查询的主要方法,还是使用全文索引,本文讲到其他相关的模糊插叙优化;同样进行耗时对比 结论:...
    99+
    2023-05-15
    Mysql模糊查询 Mysql模糊查询优化方法 Mysql模糊查询测试
  • MySQL模糊查询语法的用法
    本篇内容主要讲解“MySQL模糊查询语法的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL模糊查询语法的用法”吧!MySQL提供标准的SQL模式匹配...
    99+
    2022-10-18
  • mysql模糊查询concat()的用法详解
    目录mysql 模糊查询 concat()补充:MySQL之concat的用法一、concat()函数二、concat_ws()函数三、group_co...
    99+
    2023-02-14
    mysql 模糊查询 concat() mysql concat用法
  • mysql 模糊查询 concat()的用法详解
    目录mysql 模糊查询 concat()补充:MySQL之concat的用法一、concat()函数二、concat_ws()函数三、group_concat()函数四、conc...
    99+
    2023-02-14
    mysql模糊查询concat() mysql concat用法
  • mybatis模糊查询之bind标签和concat函数用法详解
    1.二种方式都可以用来模糊查询,都能预防 SQL 注入。但是在更换数据库情况下,bind标签通用。 <if test=” userName != null and userNa...
    99+
    2022-11-13
  • 关于MyBatis模糊查询的几种实现方式
    目录一、模糊查询的几种实现方式1.concat函数和#{}拼接的方式2.%和${}拼接的方式3.concat函数和${}拼接的方式4.||和#{}拼接的方式5.建议使用的方式二、用m...
    99+
    2023-05-18
    MyBatis查询 MyBatis模糊查询
  • PHP进行模糊查询的方法
    这篇文章主要介绍了PHP进行模糊查询的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。模糊查询的方法:1、使用SQL匹配模式,操作符使用“LIKE”或“NOT LIKE”,...
    99+
    2023-06-14
  • MyBatis中map的应用与模糊查询实现代码
    目录1.MyBatis中map的应用1.1.应用场景1.2.具体实现1.3.注意点!!!2.模糊查询1.MyBatis中map的应用 1.1.应用场景 假设,实体类,或者数据库中的表...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作