mybatis 模糊查询与函数连用%需不需要拼接问题
1,模糊查询最好用$,这样在和比如trim()等函数连用的时候不必用||把%分开
2,用#这样在输入文字参数的时候会自动加上''就不会报错,这样的话就可要用||
<select id="getWhLogList" parameterType="map" resultType="map">
select a.*,c.*
from SCM_EGESYSLOG a left join opm_user b on a.operid=b.id left join TB_CUS_MARK c on b.organid=c.market_key where 1=1
<if test="organId !=null and organId!=''">
and c.market_key=#{organId} and c.market_key is not null
</if>
<if test="type !=null and type!=''">
and type=#{type}
</if>
<if test="key !=null and key!=''">
and ( (lower(trim(operDesc)) like '%'||lower(trim(#{key}))||'%') or (lower(trim(operName)) like '%'||lower(trim(#{key}))||'%' ))
</if>
<if test="begindate !=null and begindate!=''">
and operDate <![CDATA[>=]]> to_date(#{begindate},'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="endDate !=null and endDate!=''">
and operDate <![CDATA[<=]]> to_date(#{endDate},'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="userID !=null and userID!=''">
and lower(trim(operId))=lower(trim(#{userID}))
</if>
<if test="userName !=null and userName!=''">
and lower(trim(operName)) like '%'||lower(trim(#{userName}))||'%'
</if>
order by operDate desc
</select>
<select id="getLogList" parameterType="map" resultMap="BaseResultMapVo">
SELECT t.LOG_KEY,
t.OPM_TIME,
t.OPM_DETAIL,
t.WORK_MODULE,
NVL(T1.MAN, T2.CUSTOMER_NAME) MAN,
t1.CUS_USER_ID
FROM TB_CLIENT_LOG t, TB_CUS_USER t1, TB_CUS_FIRM T2
where t.CUS_USER_KEY = t1.CUS_USER_KEY AND
T.CUSTOMER_KEY = T2.CUSTOMER_KEY
<if test="CUS_USER_ID!=null and CUS_USER_ID!=''">
AND lower(trim(T1.CUS_USER_ID)) LIKE lower(trim('%${CUS_USER_ID}%'))
</if>
<if test="START_ADD_TIME!=null and START_ADD_TIME!=''">
AND to_char(T.Opm_Time,'yyyy-mm-dd') <![CDATA[>=]]> #{START_ADD_TIME}
</if>
<if test="END_ADD_TIME!=null and END_ADD_TIME!=''">
AND to_char(T.Opm_Time,'yyyy-mm-dd') <![CDATA[<=]]> #{END_ADD_TIME}
</if>
order by t.OPM_TIME DESC
</select>
相关推荐
特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%*%)和半角模糊查询(%*或*%)
### MyBatis模糊查询知识点详解 #### 一、MyBatis简介 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以通过...
代码包含: EscapeUtil.java:特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%...
这样的写法同样可以实现模糊查询,但需要注意的是,不同的数据库可能有不同的字符串拼接函数,例如在Oracle中,你可能需要使用`||`操作符。 总结,Mybatis提供的这些模糊查询方式使得开发者可以根据实际需求灵活...
mybatis模糊查询,oracal,mysql,sqlserver三种不同数据库的不同写法
需要注意的是,在 Mybatis 中,拼接模糊查询的用法中,拼接模糊查询的用法,是将传入的值当做字符串的形式。因此,拼接的时候 `#{userName}` 默认自带引号。 二、技巧 在使用 Mybatis 实现 Oracle 数据库的查询...
在MyBatis中,模糊查询是一种常见的查询方式,特别是在数据搜索功能中不可或缺。本文将详细介绍如何在MyBatis中实现模糊查询,以及`#`和`$`的区别。 首先,让我们来理解`#`和`$`的区别。这两个符号在MyBatis中用于...
在本示例中,"mybatis递归查询菜单树"是一个基于SpringBoot架构的应用,它演示了如何利用MyBatis进行递归查询来构建菜单树结构。此外,这个项目还集成了JTA(Java Transaction API)以支持分布式事务处理,并使用了...
如果我们想实现真正的模糊查询,可以使用CONCAT函数来拼接字符串。例如: ```sql SELECT * FROM oa_employee WHERE emp_name LIKE CONCAT(#{asd}, '%') ``` 这种方法可以实现真正的模糊查询,但是它存在一些...
"MyBatis之自查询使用递归实现 N级联动效果" MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身...
在某些场景下,我们可能需要根据业务逻辑动态地拼接SQL语句,以实现更复杂的查询需求。这就是MyBatis动态SQL的功能所在。 动态SQL是MyBatis的一大特色,它使得我们能够在运行时根据条件构建SQL语句。MyBatis通过`...
MyBatis模糊查询LIKE的三种方式详解 MyBatis是一种流行的持久层框架,它提供了多种方式来实现模糊查询。模糊查询是数据库SQL中使用频率很高的SQL语句,通过MyBatis可以更加灵活地进行模糊查询。本文将详解MyBatis...
"解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...
在Mybatis中,我们需要定义一个Mapper接口,该接口中包含一个用于执行模糊查询的方法。同时,还需要在对应的XML配置文件中编写SQL语句。例如: ```java // Mapper接口 public interface UserMapper { List...
Mybatis框架(子查询)
在数据库操作中,模糊查询是一种常见的查询方式,它允许我们搜索包含特定模式的数据,而不仅仅是完全匹配的值。在MyBatis这个轻量级的持久层框架中,模糊查询是通过SQL语句来实现的,这使得我们可以灵活地构建复杂的...
本文将深入探讨如何使用MyBatis进行父子级树形结构查询,避免繁琐的代码拼接。 首先,我们了解MyBatis的`collection`标签。在MyBatis的映射XML文件中,`<collection>`标签用于表示一对多的关系,它允许我们在一次...
MyBatis实现模糊查询的几种方式 MyBatis是一款流行的基于Java的持久层框架,它提供了强大灵活的方式来与数据库进行交互。在实际开发中,我们经常需要实现模糊查询来满足业务需求。今天,我们将探讨MyBatis实现模糊...
在本文中,我们将深入探讨如何手写MyBatis实现查询所有操作,以加深对其工作原理的理解。 首先,我们需要理解MyBatis的核心组件。MyBatis包含SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper接口...
这种方式适用于需要根据多个字段进行模糊查询的情况,但需要注意,它会将所有非空属性视为查询条件,而不仅仅是模糊查询的字段。 在实际应用中,可以根据具体需求灵活选择和组合这些方法,以达到预期的查询效果。...