关于mybtis 使用过程中发生There is no getter for property named 'id' in class 'java.lang.String' 错误

  今天在修改一个关于mybtis语句时,偶然发现的一个错误  There is no getter for property named ‘id‘ in class ‘java.lang.String‘, 纠结了许久,终于明白了为什么。

原因:Mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错。当然也不是所有的版本会有这个问题,我的项目用的版本比较老。

有两种解决方案:

方案一: 将对应的参数用 _parameter 的一个参数替代,在执行SQL语句的时候就相当预编译,此时并不是实际赋值,相当于占位符,这样就不会发生这样的错误,直接上图:

将mapper中的方法参数用 _parameter来依次替代,也就是上图中画红色线部分。

方法二

在mapper.dao 文件中接口类文件中的方法参数预先定义,给参数加上@Param("id") 类似的注解也能解决这个问题,但需要导入相应的注解包和开启扫描注解

public Object getObjById(@Param("id")String id);

关于mybtis 使用过程中发生There is no getter for property named 'id' in class 'java.lang.String' 错误

原文地址:https://www.cnblogs.com/zyfBlogShare/p/11765519.html

时间: 2024-11-01 20:19:03

关于mybtis 使用过程中发生There is no getter for property named 'id' in class 'java.lang.String' 错误的相关文章

Mybatis中传参包There is no getter for property named 'XXX' in 'class java.lang.String'

一.发现问题 <select id="queryStudentByNum" resultType="student" parameterType="string"> select num,name,phone from student <where> <if test = " num!=null and num!='' "> AND num = #{num} </if> <

Mybatis中传参包There is no getter for property named &#39;roomName&#39; in &#39;class java.lang.String&#39;

一.发现问题 <select id="queryStudentByNum" resultType="student" parameterType="string"> select num,name,phone from student  <where> <if test = " num!=null and num!='' ">AND num = #{num}</if></w

从输入 URL 到浏览器接收的过程中发生了什么事情?

从输入 URL 到浏览器接收的过程中发生了什么事情? What really happens when you navigate to a URL 上面两篇文章都解读的很好,值得阅读. 接下来在总结一下这个过程: 1.首先,会查询缓存,如果缓存存在的话则直接响应,否则继续下面过程: 2.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询.这能使浏览器获得请求对应的IP地址.D

vs 或 Sql server2012连接Sql server时出现的问题:已成功与服务器建立连接,但在登陆过程中发生错误

以前连接是正常的,就这两天连不上了.(没有耐心的直接看末尾解决办法) 错误消息如下: 1.尝试读取或写入受保护的内存.这通常指示其他内存已损坏.(System.Data) 2.已成功与服务器建立连接,但在登陆过程中发生错误.(provider:SSL Provider,error:0-接收到的消息异常,或格式不正确.)(Microsoft SQL Server) 然后就Management崩溃了. 没办法,那就使用vs当中的服务器资源管理器连接吧,结果可想而知,其中vs版本2008,2010,2

【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS下运行的时候,IIS crash.之前的连接是没问题的,后网上找了资料,根据牛人所说的方案解决了. 1. Exception message 已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确.)

SQL Server 2005 sa登录失败。已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。

SQL Server 2005 Express版 用户 'sa' 登录失败.该用户与可信 SQL Server 连接无关联.提示错误:已成功与服务器建立连接 但是在登录过程中发生错误. provider 共享内存提供程序 error 0 管道的另一端上无任何进程. 解决方案: 1.首先选中服务器(右键)->属性->安全性->服务器身份验证修改为"SQL SERVER和WINDOWS身份验证模式"2.其次展开服务器下面的"安全性"文件夹->登陆

从输入 URL 到浏览器接收的过程中发生了什么事情

从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU  首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米

SQL Server(解决问题)已成功与服务器建立连接,但是在登录过程中发生错误。(provider: Shared Memory Provider, error:0 - 管道的另一端上无任何进程。

http://blog.csdn.net/github_35160620/article/details/52676416 如果你在使用新创建的 SQL Server 用户名和密码 对数据库进行连接的时候出现了下面的问题.阅读本篇博客可以帮助你解决这个问题. 已成功与服务器建立连接,但是在登录过程中发生错误.(provider: Shared Memory Provider, error:0 - 管道的另一端上无任何进程.)(Microsoft SQL Server,错误:233) 管道的另一端

Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误的集中原因及解决办法

上面那个问题刚解决,就又来一个问题~~~~ 错误信息字符串:java.lang.RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.NullPointerException 网上有不少解决办法 一般都会在Activity  onCreate()方法里的setContentView(XXX)发生此错误,网上查阅了很多原因,大概有四种重要可能的原因: 原因一:xxx的错误,若为R.layout.main