怎么在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}> 代码没有默认引号,例如:$ {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实现拼接模糊查询