MyBatis 参数类型为String时常见问题及解决方法

 更新时间:2017年03月30日 10:12:27   作者:Rain_Git  
这篇文章主要介绍了MyBatis 参数类型为String时常见问题及解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

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进行处理时也会出现同样的问题。

以上所述是小编给大家介绍的MyBatis 参数类型为String时常见问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Spring中@Value读取properties作为map或list的操作

    Spring中@Value读取properties作为map或list的操作

    这篇文章主要介绍了Spring中@Value读取properties作为map或list的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 详解Java中字典树(Trie树)的图解与实现

    详解Java中字典树(Trie树)的图解与实现

    Trie又称为前缀树或字典树,是一种有序树,它是一种专门用来处理串匹配的数据结构。本文将利用图解详细讲解Trie树的实现,需要的可以参考一下
    2022-05-05
  • SpringBoot2零基础到精通之JUnit 5与指标监控

    SpringBoot2零基础到精通之JUnit 5与指标监控

    SpringBoot是一种整合Spring技术栈的方式(或者说是框架),同时也是简化Spring的一种快速开发的脚手架,本篇让我们一起学习JUnit 5与指标监控
    2022-03-03
  • Java实现图片拼接

    Java实现图片拼接

    这篇文章主要为大家详细介绍了Java实现图片拼接的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Maven中央仓库发布的实现方法

    Maven中央仓库发布的实现方法

    最近做了个项目,希望能够上传到maven中央仓库,给更多的人使用,于是就产生了这次项目发布经历。感兴趣的可以一起来参考一下
    2021-06-06
  • Java中实现高清图片压缩的两种方案(最新推荐)

    Java中实现高清图片压缩的两种方案(最新推荐)

    文章首先介绍了Java中进行高清图片压缩的基本方法,包括使用Java标准库ImageIO和第三方库ApacheCommonsCompress,通过示例代码展示了如何调整图像质量和使用第三方工具来压缩图片文件,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Java实现List反转的方法总结

    Java实现List反转的方法总结

    在Java中,反转一个List意味着将其元素的顺序颠倒,使得第一个元素变成最后一个,最后一个元素变成第一个,依此类推,这一操作在处理数据集合时非常有用,所以本文给大家总结了Java实现List反转的方法,需要的朋友可以参考下
    2024-04-04
  • 基于feign传参MultipartFile问题解决

    基于feign传参MultipartFile问题解决

    这篇文章主要介绍了基于feign传参MultipartFile问题解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java8中用foreach循环获取对象的index下标详解

    Java8中用foreach循环获取对象的index下标详解

    这篇文章主要给大家介绍了关于Java8中用foreach循环获取对象的index下标的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java基础知识精通数组的使用

    Java基础知识精通数组的使用

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素
    2022-04-04

最新评论