首页 > 作文

解决Mybatis映射文件mapper.xml中的注释问题

更新时间:2023-04-04 13:57:49 阅读: 评论:0

目录
mybatis映射文件mapper.xml的注释问题报错信息解决办法mapper.xml文件中的注释注释方式‘无效的列索引’bug和解决小结一下

mybatis映射文件mapper.xml的注释问题

从昨天夜晚9点到今天中午,一直被项目bug所困惑,中间这段时间一直未解决这个问题,也咨询很多群里大佬,也未能解决

有的说是我代码写的有问题,如mapper文件中没有写入参数类型parametertype,也有说是我项目结构目录构建出错,按照他们的建议进行修正,也是未尽人意,启动项目运行始终报出同一个错误,现在问题解决了,感觉有必要记录这个很不经意的问题,造成这个bug的问题根本原因还是自己编码不规范造成。

报错信息

12:12:11 [http-nio-8081-exec-8] error w.g.z.c.exception.bdexceptionhandler – nested exception is org.apache.ibatis.type.typeexception: could not t parameters for mapping: parametermapping{property=’limit’, mode=in, javatype=int, jdbctype=null, numericscale=null, resultmapid=’null’, jdbctypename=’null’, expression=’null’}. cau: org.apache.ibatis.type.typeexception: error tting non null for parameter #4 with jdbctype null . try tting a different jdbctype for this parameter or a different configuration property. cau: java.sql.sqlexception: parameter index out of range (4 > number of parameters, which is 3).
org.mybatis.spring.mybatissystemexception: nested exception is org.apache.ibatis.type.typeexception: could not t parameters for mapping: parametermapping{property=’limit’, mode=in, javatype=int, jdbctype=null, numericscale=null, resultmapid=’null’, jdbctypename=’null’, expression=’null’}. cau: org.apache.ibatis.type.typeexception: error tting non null for parameter #4 with jdbctype null . try tting a different jdbctype for this parameter or a different configuration property. cau: java.sql.sqlexception: parameter index out of range (4 > number of parameters, which is 3).
at org.mybatis.spring.mybatixceptiontranslator.translateexceptionifpossible(mybatixceptiontranslator.java:79)
at org.mybatis.spring.sqlssiontemplate$sqlssioninterceptor.invoke(sqlssiontemplate.java:447)
at com.sun.proxy.$proxy104.lectlist(unknown source)
at org.mybatis.spring.sqlssiontemplate.lectlist(sqlssiontemplate.java:231)
at org.apache.ibatis.binding.mappermethod.executeformany(mappermethod.java:137)
at org.apache.iba像距tis.binding.mappermethod.execute(mappermethod.java:75)
at org.apache.ibatis.binding.mapperproxy.invoke(mapperproxy.java:59)
at com.sun.proxy.$proxy120.list(unknown source)

项目报错根本原因在下面的xml文件中

duesmapper.xml

<lect id="list" resulttype="whut.glxiang.zqly.dues.domain.duesdo">    /*lect `d.ur_id`,`su.urname`,`d.dues`,`d.status`,`d.total_price`,`d.pay_time` from dues as d left 过故人庄原文join sys_ur as su where d.ur_id=su.ur_id and d.ur_id=#{urid}*/    lect d.ur_id,       su.urname,       d.dues,       d.status,       d.total_price,       d.pay_time    from dues d    left join sys_ur su    on d.ur_id=su.u杖头木偶r_id    <where>      <if test="urid != null and urid != ''"> and d.ur_id = #{urid} </if>    </where>    <choo>      <when test="sort != null and sort.trim() != ''">        order by ${sort} ${order}      </when>      <otherwi>        order by d.ur_id desc      </otherwi>    </choo>    <if test="offt != null and limit != null">      limit #{offt}, #{limit}    </if>  </lect>

解决办法

首先检查自己的mapper.xml文件中是否存在注释?xml文件中的注释不能是 /**/,要不然就会报出上面的错误信息,只能以<!开头,和 > 结尾

其次就是检查自己的sql语句是否写的有问题或者映射的实体类属性是否与sql查询的字段一致

总之,项目编码一定要规范,这样才能减少找bug的时间,提高效率,上面项目运行报错就是因为这个xml注释不规范,大家还是多要注意!!! 编码不规范,自己两行泪。

mapp寄托的近义词是什么er.xml文件中的注释

注释方式

在mapper.xml文件中,注释方式为<!–existence of query content–>,直接采用java代码方式的注释/*existence of query content*/会报错,尤其是在sql语句中出现这种注释方式时。

‘无效的列索引’bug和解决

昨天在导入数据时需要对数据进行验证,在mapper文件中对表中数据进行查询,将作废sql注释时选择了java方式,此时会报错。

<lect id="getqnamecount" parameterclass="java.util.hashmap" resultclass="java.lang.integer"> lect count(*) coun from tablename a  where a.id=#id# and a.name=#name# /*lect 乐不思蜀啥意思* from tablename a  where a.id=#id# and  a.name=#name#*/ </lect>

在解析时由于会将参数位置解析为占位符‘?’,所以此时以下的sql会在后台解析成如下,但是传入的参数只有两个,所以这个时候会报 “caud by: java.sql.sqlexception: 无效的列索引”,因为传入的参数和占位符数量不等。

lect count(*) coun from tablename a where a.id=? and a.name=? /*lect * from tablename a where a.id=? and  a.name=?/

小结一下

1、mapper.xml文件中注释方式为<!–existence of query content–>;

2、“caud by: java.sql.sqlexception: 无效的列索引”错误一般由sql语句中占位符引起:

传入参数数量不等与占位符的数量;

sql语句中的占位符?是中文版;

sql语句中的占位符?被放在字符串内;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 13:57:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/19961007729c653b26c691a9bc1a1030.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:解决Mybatis映射文件mapper.xml中的注释问题.doc

本文 PDF 下载地址:解决Mybatis映射文件mapper.xml中的注释问题.pdf

标签:注释   文件   报错   方式
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图