zoukankan      html  css  js  c++  java
  • Mybatis笔记四:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'

    错误异常:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'

    映射器类(Mapper interface)

    public interface NarCodeService {
        
        public NarCode getNarCode(String id);
    
    }

    Xml映射文件配置(部分)

    <select id="getNarCode" parameterType="java.lang.String"
             resultType="narCode">
             select
             <include refid="Base_Column_List"></include>
             from nar_code
             <where>
                 <if test="id != null">
                     id=#{id,jdbcType=VARCHAR}
                 </if>
             </where>
     </select>

    这是Mybatis Xml映射文件配置,当我执行这个映射select语句时报错:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'

     解决办法有两种:

    1.去掉sql语句的if标签限制

    <if test="id != null">
         id=#{id,jdbcType=VARCHAR}
    </if>
    改为:
    id=#{id,jdbcType=
    VARCHAR}

    原因:我自己猜测加上if标签时,id属性没有包含在数据类型为String id对象中。
    如果去掉if标签时直接使用这个数据类型为String id对象

    2.将parameterType="java.lang.String"参数改为传一个自定义实体对象或者HashMap来封装这个id参数
    原因:可以在自定义实体对象或者HashMap中找到这个id属性

     
  • 相关阅读:
    MyBatis框架Dao代理
    MyBatis对象分析及创建工具类
    搭建MyBatis开发环境及基本的CURD
    IDEA中配置Maven
    rpm 安装mysql8.0 ;安装deb
    SpringBoot 整合 xxl-job 指导手册
    设计模式(一) 单例设计模式
    SpringCloud (三) Eureka 注册中心
    SpringCloud (二) 注册中心理论
    SpringCloud (一) 微服务入门
  • 原文地址:https://www.cnblogs.com/sishang/p/6555176.html
Copyright © 2011-2022 走看看