广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis对传入基本类型参数的判断方式
  • 546
分享到

mybatis对传入基本类型参数的判断方式

2024-04-02 19:04:59 546人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录对传入基本类型参数的判断解决办法传入基本类型参数时test判断报错分析解决办法小结一下对传入基本类型参数的判断 mybatis的xml文件的sql语句中parameterType

对传入基本类型参数的判断

mybatis的xml文件的sql语句中parameterType为基本类型,如:

<select id="getCustomer" parameterType="Integer" resultType="Customer">
    select * from customer
    where
    <if test="id != null">id=#{id}</if>
<select>

会报错:There is no getter for property named 'id' in 'class java.lang.Integer'

这是因为Integer对象中没有id属性

解决办法

<select id="getCustomer" parameterType="Integer" resultType="Customer">
    select * from Customer
    where
    <if test="_parameter != null">id=#{_parameter}</if>
<select>

即将接收参数的参数名改为_parameter,注意改成其他参数名没用。

传入基本类型参数时test判断报错

在使用mybatis的时候出现了这样的问题:

//Dao层的接口中的代码
List<Map<String,Object>> getName(String username);
//对应的mapper中的代码
<select id="getName" resultType="java.util.Map">
    select name,client_id
    from table1
    <where> 
        <if test=" username!= null and username!='' ">
            and username= #{id}
        </if>
    </where> 
</select>

//报的错误
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: 
There is no getter for property named 'username' in 'class java.lang.String'

分析

There is no getter for property named ‘username’ in ‘class java.lang.String’,这句话打大概意思是:在“class java.lang.String”中没有名为“username”的属性的getter方法。因为mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式取string.num值,引起错误。

解决办法

if test中的id用_parameter替换,而实际的语句不需要修改and a.id =#{id},因为Mybatis当只传入一个参数时#{ } 中的内容没有要求。

在Mapper中给出入参设置名称,例:public … getName(@Param(“username”) String username);这样修改后我们前面的写法就不会报错了。

小结一下

在传入基本类型的数据时,if标签中test判断的书写hi根据ognl表达式来取值的,所以不能直接写参数的名称,要利用_parameter来替代,或者利用注解@Pram("")来给参数起别名。

补充一点点:标签when中的test属性也有同样的问题!!!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis对传入基本类型参数的判断方式

本文链接: https://www.lsjlt.com/news/142254.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作