`
y806839048
  • 浏览: 1107952 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

mybatis 模糊查询与函数连用%需不需要拼接问题

阅读更多

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>

 

分享到:
评论

相关推荐

    Mybatis自定义拦截器,对模糊查询传值的特殊字符统一进行转义处理的代码

    特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%*%)和半角模糊查询(%*或*%)

    Mybatis自定义拦截器,对模糊查询传值的特殊字符(\,_,%)统一进行转义处理的代码

    代码包含: EscapeUtil.java:特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%...

    MyBatis模糊查询

    ### MyBatis模糊查询知识点详解 #### 一、MyBatis简介 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以通过...

    mybatis模糊查询

    mybatis模糊查询,oracal,mysql,sqlserver三种不同数据库的不同写法

    Mybatis中的like模糊查询功能

    这样的写法同样可以实现模糊查询,但需要注意的是,不同的数据库可能有不同的字符串拼接函数,例如在Oracle中,你可能需要使用`||`操作符。 总结,Mybatis提供的这些模糊查询方式使得开发者可以根据实际需求灵活...

    Mybatis 中 Oracle 的拼接模糊查询及用法详解

    需要注意的是,在 Mybatis 中,拼接模糊查询的用法中,拼接模糊查询的用法,是将传入的值当做字符串的形式。因此,拼接的时候 `#{userName}` 默认自带引号。 二、技巧 在使用 Mybatis 实现 Oracle 数据库的查询...

    mybatis 模糊查询的实现方法

    在MyBatis中,模糊查询是一种常见的查询方式,特别是在数据搜索功能中不可或缺。本文将详细介绍如何在MyBatis中实现模糊查询,以及`#`和`$`的区别。 首先,让我们来理解`#`和`$`的区别。这两个符号在MyBatis中用于...

    mybatis递归查询菜单树

    在本示例中,"mybatis递归查询菜单树"是一个基于SpringBoot架构的应用,它演示了如何利用MyBatis进行递归查询来构建菜单树结构。此外,这个项目还集成了JTA(Java Transaction API)以支持分布式事务处理,并使用了...

    Mybatis模糊查询和动态sql语句的用法

    如果我们想实现真正的模糊查询,可以使用CONCAT函数来拼接字符串。例如: ```sql SELECT * FROM oa_employee WHERE emp_name LIKE CONCAT(#{asd}, '%') ``` 这种方法可以实现真正的模糊查询,但是它存在一些...

    MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)

    "MyBatis之自查询使用递归实现 N级联动效果" MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身...

    MyBatis动态拼接SQL

    在某些场景下,我们可能需要根据业务逻辑动态地拼接SQL语句,以实现更复杂的查询需求。这就是MyBatis动态SQL的功能所在。 动态SQL是MyBatis的一大特色,它使得我们能够在运行时根据条件构建SQL语句。MyBatis通过`...

    详解MyBatis模糊查询LIKE的三种方式

    MyBatis模糊查询LIKE的三种方式详解 MyBatis是一种流行的持久层框架,它提供了多种方式来实现模糊查询。模糊查询是数据库SQL中使用频率很高的SQL语句,通过MyBatis可以更加灵活地进行模糊查询。本文将详解MyBatis...

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    "解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...

    使用Mybatis框架的模糊查询

    在Mybatis中,我们需要定义一个Mapper接口,该接口中包含一个用于执行模糊查询的方法。同时,还需要在对应的XML配置文件中编写SQL语句。例如: ```java // Mapper接口 public interface UserMapper { List...

    Mybatis框架(子查询)

    Mybatis框架(子查询)

    MyBatis中的模糊查询语句

    在数据库操作中,模糊查询是一种常见的查询方式,它允许我们搜索包含特定模式的数据,而不仅仅是完全匹配的值。在MyBatis这个轻量级的持久层框架中,模糊查询是通过SQL语句来实现的,这使得我们可以灵活地构建复杂的...

    mybatis 父子级树形结构查询

    本文将深入探讨如何使用MyBatis进行父子级树形结构查询,避免繁琐的代码拼接。 首先,我们了解MyBatis的`collection`标签。在MyBatis的映射XML文件中,`&lt;collection&gt;`标签用于表示一对多的关系,它允许我们在一次...

    MyBatis实现模糊查询的几种方式

    MyBatis实现模糊查询的几种方式 MyBatis是一款流行的基于Java的持久层框架,它提供了强大灵活的方式来与数据库进行交互。在实际开发中,我们经常需要实现模糊查询来满足业务需求。今天,我们将探讨MyBatis实现模糊...

    手写mybatis实现查询所有操作

    在本文中,我们将深入探讨如何手写MyBatis实现查询所有操作,以加深对其工作原理的理解。 首先,我们需要理解MyBatis的核心组件。MyBatis包含SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper接口...

    MyBatis-plus 模糊查询的使用

    这种方式适用于需要根据多个字段进行模糊查询的情况,但需要注意,它会将所有非空属性视为查询条件,而不仅仅是模糊查询的字段。 在实际应用中,可以根据具体需求灵活选择和组合这些方法,以达到预期的查询效果。...

Global site tag (gtag.js) - Google Analytics