怎么在Mybatis中使用Oracle实现拼接模糊查询

  介绍

怎么在Mybatis中使用Oracle实现拼接模糊查询吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>一、结论

甲骨文中,拼接模糊查询的正确写法

, SELECT  A.USER_ID,   ,,,,A.USER_NAME   ,才能得到USER    ,,,,,以及A.USER_NAME  like  concat (concat (& # 39; % & # 39; & # 39; w # 39;), & # 39; % & # 39;)   ,,,,,或者   ,,,,,以及A.USER_NAME  like  & # 39; % & # 39;, | |, & # 39; w # 39;, | |, & # 39; % & # 39;

Mybatis中,拼接模糊查询的正确写法

, & lt; select  id=皊electByName", resultMap=癇aseResultMap"比;   ,,,SELECT  A.USER_ID,   ,,,,A.USER_NAME   ,才能得到T_BASE_USER_INFO    ,,,,,& lt; if 测试=皍serName  !=, null"比;   ,,,,,,,以及A.USER_NAME  like  & # 39; % & # 39;, | |, # {userName}, | |, & # 39; % & # 39;   ,,,,,& lt;/if>   ,,,,,或者   ,,,,,& lt; if 测试=皍serName  !=, null"比;   ,,,,,,,以及A.USER_NAME  like  concat (concat (& # 39; % & # 39; & # 39; $ {userName} & # 39;), & # 39; % & # 39;)   ,,,,,& lt;/if>   & lt;才能/select>

<强>注意Mybatis中,拼接模糊查询的用法

,是将传入的值当做字符串的形式,所以拼接的时候<代码> # {userName} 默认自带引号,例如:$ {userName} <代码> 直接转为“甄# 39;。

,是将传入的数据直接显示生成sql语句。所以拼接的时候
,是将传入的数据直接显示生成sql语句。所以拼接的时候
<代码> {userName}> 直接转为甄。

<强>二、技巧:

刚开始写的时候一直报错,报错信息是这样的:

,,,“message":“请求处理失败;嵌套的异常org.mybatis.spring。MyBatisSystemException: org.apache.ibatis.type嵌套异常。TypeException:无法设置参数映射:ParameterMapping{属性=& # 39;用户名# 39;,模式=,将javaType . lang=类。字符串,jdbcType=null, numericScale=null, resultMapId=& # 39;零# 39;,jdbcTypeName=& # 39;零# 39;,表达=& # 39;零# 39;}。原因:org.apache.ibatis.type。TypeException:错误设置非零与JdbcType null参数# 1。尝试为这个参数设置不同的JdbcType或一个不同的配置属性。原因:java.sql。SQLException异常:无效的列索引“,

我的写法是这样的:,,,,,,,,,,,

, & lt; if 测试=癬parameter  !=, null"比;   ,,,,,,,,,,以及A.USER_NAME  like  CONCAT (& # 39; % & # 39; & # 39; # {userName} & # 39;, & # 39; % & # 39;)   ,,,,,,,,,以及A.USER_NAME =, # {userName}   ,,,,,,,& lt;/if>   & lt; !,,,,,,,,, & lt; if 测试=皍serType  !=, null"比;   ,,,,,,,,,以及A.USER_TYPE =, # {userType}   ,,,,,,,& lt;/if>   ,,,,,,,& lt; if 测试=癿obilePhoneNo  !=, null"比;   ,,,,,,,,,以及A.MOBILE_PHONE_NO  like  CONCAT (& # 39; % & # 39; & # 39; # {mobilePhoneNo} & # 39;, & # 39; % & # 39;)   ,,,,,,,& lt;/if>   ,,,,,,,& lt; if 测试=皉oleId  !=, null"比;   ,,,,,,,,,以及B.ROLE_ID =, # {roleId}   ,,,,,,,,,,,,,,,& lt;/if>——在

后来我彻底凌乱了,于是就从头开始写,结果就好了。

<强>小结:

出现的报错可能跟我之前写了太多的如果判断语句有关,于是先写一个简单的,,,,,,,,,,

, & lt; if 测试=皍serName  !=, null"比;   ,,,,,,,以及A.USER_NAME  like  & # 39; % & # 39;, | |, # {userName}, | |, & # 39; % & # 39;   ,,,,,& lt;/if>

这个可以执行,其他再有什么条件加进来,稍微修改之后,都可以正常运行只,,,,,,,,,

, & lt; if 测试=皍serName  !=, null"比;   ,,,,,,,以及A.USER_NAME  like  concat (concat (& # 39; % & # 39; & # 39; $ {userName} & # 39;), & # 39; % & # 39;)   ,,,,,& lt;/if>   ,,,,,& lt; if 测试=皍serType  !=, null"比;   null   null   null   null   null   null   null   null

怎么在Mybatis中使用Oracle实现拼接模糊查询