怎么在ibatis使用$往in里面传String参数
我将参数设置成 bizCode="'BIZ-NATIONAL-SOUTUDI','BIZ-NATIONAL-DEFUALT'";
在ibatis里面<select id="queryListTblBcsShare" parameterType="com.ums.bcs.front.model.Share" resultMap="ShareResultMap">
select BIZ_ID,
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in (${bizCode} $)
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or (BIZ_CODE is null
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or(BIZ_CODE=#{bizCode,jdbcType=VARCHAR}
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
</select>
然后在控制台报错:
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in ('BIZ-NATIONAL-SOUTUDI','BIZ-NATIONAL-DEFUALT' $)
and SHARE_TYPE=?)
or (BIZ_CODE is null
and SHARE_TYPE=?)
or(BIZ_CODE=?
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
17:44:32.706 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ----pra:com.ums.bcs.front.model.Share@bc3ed6
17:44:32.706 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ---------------------------------------------------------
17:44:32.846 INFO [bio-8080-exec-3] o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
17:44:32.906 INFO [bio-8080-exec-3] o.s.j.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLException: ORA-00911: 无效字符
如果用 select BIZ_ID,
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in (${bizCode})
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or (BIZ_CODE is null
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or(BIZ_CODE=#{bizCode,jdbcType=VARCHAR}
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
这样就只有一个值了,
在控制台输出:
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in (BIZ-NATIONAL-SOUTUDI)
and SHARE_TYPE=?)
or (BIZ_CODE is null
and SHARE_TYPE=?)
or(BIZ_CODE=?
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
17:47:13.774 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ----pra:com.ums.bcs.front.model.Share@129efd0
17:47:13.774 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ---------------------------------------------------------
17:47:13.824 INFO [bio-8080-exec-3] o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
17:47:13.885 INFO [bio-8080-exec-3] o.s.j.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLException: ORA-00904: "SOUTUDI": 标识符无效
### The error may involve com.ums.bcs.front.dao.ShareDao.queryListTblBcsShare-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLException: ORA-00904: "SOUTUDI": 标识符无效
应该怎么写啊?求大神指教
在ibatis里面<select id="queryListTblBcsShare" parameterType="com.ums.bcs.front.model.Share" resultMap="ShareResultMap">
select BIZ_ID,
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in (${bizCode} $)
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or (BIZ_CODE is null
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or(BIZ_CODE=#{bizCode,jdbcType=VARCHAR}
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
</select>
然后在控制台报错:
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in ('BIZ-NATIONAL-SOUTUDI','BIZ-NATIONAL-DEFUALT' $)
and SHARE_TYPE=?)
or (BIZ_CODE is null
and SHARE_TYPE=?)
or(BIZ_CODE=?
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
17:44:32.706 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ----pra:com.ums.bcs.front.model.Share@bc3ed6
17:44:32.706 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ---------------------------------------------------------
17:44:32.846 INFO [bio-8080-exec-3] o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
17:44:32.906 INFO [bio-8080-exec-3] o.s.j.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLException: ORA-00911: 无效字符
如果用 select BIZ_ID,
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in (${bizCode})
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or (BIZ_CODE is null
and SHARE_TYPE=#{shareType,jdbcType=VARCHAR})
or(BIZ_CODE=#{bizCode,jdbcType=VARCHAR}
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
这样就只有一个值了,
在控制台输出:
BIZ_CODE,
DETAIL_ID,
IS_CUS_URL,
BIZ_CLIENT_VERSION,
BIZ_STATUS,
SHARE_URL,
SHARE_TYPE
from TBL_BCS_SHARE
where (BIZ_CODE in (BIZ-NATIONAL-SOUTUDI)
and SHARE_TYPE=?)
or (BIZ_CODE is null
and SHARE_TYPE=?)
or(BIZ_CODE=?
and SHARE_TYPE is null)
or(BIZ_CODE is null and SHARE_TYPE is null)
order by BIZ_CODE nulls last,SHARE_TYPE nulls last
17:47:13.774 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ----pra:com.ums.bcs.front.model.Share@129efd0
17:47:13.774 INFO [bio-8080-exec-3] c.h.c.m.i.p.DiclectStatementHandlerInterceptor - ---------------------------------------------------------
17:47:13.824 INFO [bio-8080-exec-3] o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
17:47:13.885 INFO [bio-8080-exec-3] o.s.j.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLException: ORA-00904: "SOUTUDI": 标识符无效
### The error may involve com.ums.bcs.front.dao.ShareDao.queryListTblBcsShare-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLException: ORA-00904: "SOUTUDI": 标识符无效
应该怎么写啊?求大神指教
...全文
相关推荐
ibatis中输入输出各种类型的参数分析及#与$区别
这些类型在iBatis中通常通过`HashMap`或特定的实体类进行封装后传递。#### #与$的区别在iBatis中编写SQL语句时,可以使用`#{}`和`${}`两种方式来插入参数。
ibatis的多参数查询.doc
### ibatis多参数查询解析#### 一、引言在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。
ibatis中 $ 于 # 的 区别
### ibatis中 $ 与 # 的区别在ibatis(现称为MyBatis)框架中,$ 和 # 是两种不同的动态SQL元素标记,用于处理参数传递的问题。
ibatis教程 输入参数详解
标题:ibatis教程 输入参数详解描述:ibatis教程 输入参数详解 ibatis快速入门标签:ibatis list部分内容:这段部分提供了ibatis用户指南的警告,关于从文档复制代码的问题,以及
ibatis教程
对此,ibatis提供了几种解决方案:1. **使用String代替** 这种方法是将所有参数拼接成一个字符串,然后作为参数传入。


