MyBatis 参数类型为String时常见问题及解决方法
时间:2021-07-19 07:59:55|栏目:JAVA代码|点击: 次
1. 参数为String时的插值问题
假设有下面一Dao接口方法
public Account findByAccountType (String type)throws DaoException;
对应的Mapper.xml
<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才能识别 :
<select id="findByAccountType " parameterType="string" resultType="account">
select *
form account
<where>
<if test ="_parameter!= null">
type=#{_parameter}
</if>
</where>
</select>
2. 对字符串参数进行是否相等 比较时的问题
错误:
<if test="_parameter == '1' ">
type=#{_parameter}
</if>
正确:
<if test='_parameter == "1" '>
type=#{_parameter}
</if>
<if test="_parameter == '1'.toString() ">
type=#{_parameter}
</if>
注:上述问题不仅限于<if>标签,其他动态sql标签在对String进行处理时也会出现同样的问题。
上一篇:Java8接口的默认方法
栏 目:JAVA代码
本文标题:MyBatis 参数类型为String时常见问题及解决方法
本文地址:http://www.codeinn.net/misctech/159083.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




