mybatis 参数为String时的插值问题
来源:互联网 发布:淘宝美伢抄袭 编辑:程序博客网 时间:2024/06/03 09:25
1. 参数为String时的插值问题
假设有下面一Dao接口方法
1
public
Account findByAccountType (String type)
throws
DaoException;
对应的Mapper.xml
1
2
3
4
5
6
7
8
9
<select id=
"findByAccountType "
parameterType=
"string"
resultType=
"account"
>
select *
form account
<where>
<
if
test =
"type != null"
>
type=#{type}
</
if
>
</where>
</select>
一般我们都是按这样的方式来写的,对于其他类型是没错的,但是如果为String的话会抛下面的异常:
There is no getter for property named 'type ' in 'class java.lang.String'
因为MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 :
1
2
3
4
5
6
7
8
9
<select id=
"findByAccountType "
parameterType=
"string"
resultType=
"account"
>
select *
form account
<where>
<
if
test =
"_parameter!= null"
>
type=#{_parameter}
</
if
>
</where>
</select>
2. 对字符串参数进行是否相等 比较时的问题
错误:
1
2
3
<
if
test=
"_parameter == '1' "
>
type=#{_parameter}
</
if
>
正确:
1
2
3
4
5
6
<
if
test=
'_parameter == "1" '
>
type=#{_parameter}
</
if
>
<
if
test=
"_parameter == '1'.toString() "
>
type=#{_parameter}
</
if
>
注:上述问题不仅限于<if>标签,其他动态sql标签在对String进行处理时也会出现同样的问题。
阅读全文
0 0
- mybatis 参数为String时的插值问题
- MyBatis 参数类型为String时常见问题及解决方法
- mybatis查询参数为0且类型不是string的小问题
- MyBatis 动态SQL String 参数为空
- mybatis中传入String类型参数的问题
- mybatis 参数为String,if test读取该参数
- mybatis动态sql参数为实体类时出现的问题
- Mybatis 和 SqlLite 相遇时 批量插入时遇到的问题
- mybatis传入List参数或者单个String 参数等问题
- MyBatis 参数类型为String时常见问题解决方法
- 对于mybatis传入string类型的参数
- mybatis 传入String 类型的参数
- mybatis 参数为list时,校验list是否为空, mybatis ${}与#{}的区别
- String类型参数的传值问题
- Mybatis 传参数的问题
- MyBatis传入参数的问题
- mybatis参数传递的问题
- MyBatis传入参数的问题
- 最小点覆盖,最小边覆盖,最大匹配,最小路径覆盖,最大独立集总结。
- vue路由传参
- 百度电子图表js框架(附js软件测试报告demo)
- 唯快不破:Web 应用的 13 个优化步骤
- HDU 2096-小明A+B-水题
- mybatis 参数为String时的插值问题
- apache服务及其管理
- 零:入门知识拾遗
- 数据结构介绍——链式前向星
- POJ3684 弹性碰撞
- Centos简介
- 数据库相关
- NLP+句法结构(三)︱中文句法结构(CIPS2016、依存句法、文法)
- 题目