mybaitis动态sql利用bind标签代替%拼接完成模糊查询

  Oracle中使用bind的写法

<select id="selectUser" resultType="user" parameterType="user">
  <bind name="pattern" value="‘%‘ + username + ‘%‘" />
  select id,sex,age,username,password
  from user
  where username LIKE #{pattern}
</select>

  Oracle中不使用bind的写法

  

<select id="selectUser" resultType="user" parameterType="user">
  select id,sex,age,username,password
  from user
  where username LIKE  CONCAT(CONCAT(‘%‘,#{username}),‘%‘)
</select>

  

原文地址:https://www.cnblogs.com/LingCoder/p/9565159.html

时间: 2024-08-11 13:20:13

mybaitis动态sql利用bind标签代替%拼接完成模糊查询的相关文章

mybatis动态sql之bind标签

<select id="" resultType=""> select * from tbl_employee where last_name like #{lastName} </select> 一般我们进行模糊查询时,都会在java端输入: List<Employee> employees = mapper.getEmpByLastNameLike("%小%"); 如果我们想在xml文件中进行这种处理: &

MyBatis动态SQL中trim标签的使用

My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少. 事实上trim标签有点类似于replace效果. trim 属性 prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件 suffixOverrides:后缀判断的条件 比如: Java代码   select b.* from sys_menu b where 1 = 1 <trim suffix="WHERE" suffixOve

MyBatis从入门到精通(六):MyBatis动态Sql之if标签的用法

最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动态的Sql,主要包含以下3个场景: 根据查询条件实现动态查询 根据参数值实现动态更新某些列 根据参数值实现动态插入某些列 1. 使用if标签实现动态查询 假设有这样1个需求:根据用户的输入条件来查询用户列表,如果输入了用户名,就根据用户名模糊查询,如果输入了邮箱,就根据邮箱精确查询,如果同时输入了用户名和邮箱

mybatis动态sql中where标签的使用

where标记的作用类似于动态sql中的set标记,他的作用主要是用来简化sql语句中where条件判断的书写的,如下所示: <select id="selectByParams" parameterType="map" resultType="user"> select * from user <where> <if test="id != null ">id=#{id}</if&g

mybatis动态sql中foreach标签的使用

foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代.如下: <delete id="deleteBatch"> delete from user where id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=",&qu

Mybatis中动态sql中trim标签的使用

trim是一个格式化的标记,可以完成set或者where标记的功能. trim属性: prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件 suffixOverrides:后缀判断的条件 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null an

mybatis动态sql之foreach标签

foreach 元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量.它也允许你指定开头与结尾的字符串以及在迭代结果之间放置分隔符.这个元素是很智能的,因此它不会偶然地附加多余的分隔符. 注意 你可以将任何可迭代对象(如 List.Set 等).Map 对象或者数组对象传递给 foreach 作为集合参数.当使用可迭代对象或者数组时,index 是当前迭代的次数,item 的值是本次迭代获取的元素.当使用 Map 对象(或者 Map.Ent

用Groovy模板写MyBatis动态SQL

MyBatis动态SQL简介 MyBatis有个强大的功能,动态SQL.有了这个功能,定义在Mapper里的SQL语句,就不必是静止不变的了,而是可以根据传入的参数,动态调整.下面是MyBatis官方文档里的一个if语句的例子: <select id="findActiveBlogWithTitleLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = 'ACTIVE' <if test=

T-SQL动态查询(4)——动态SQL

接上文:T-SQL动态查询(3)--静态SQL 前言: 前面说了很多关于动态查询的内容,本文将介绍使用动态SQL解决动态查询的一些方法. 为什么使用动态SQL: 在很多项目中,动态SQL被广泛使用甚至滥用,很多时候,动态SQL又确实是解决很多需求的首选方法.但是如果不合理地使用,会导致性能问题及无法维护.动态SQL尤其自己的优缺点,是否使用需要进行评估分析: 动态SQL优点: 动态SQL提供了强大的扩展功能,能够应付复杂的需求,即使在需求增加时也能应对,并且不会因为需求的增加而导致代码的线性增长