MyBatis使用Mapper查询时报错:java.lang.StringIndexOutOfBoundsException: String index out of range: 8000

SpringBoot项目做订单查询接口开发,使用Mybatis的Mapper做查询的时候,抛出异常

java.lang.StringIndexOutOfBoundsException: String index out of range: 8000

错误信息指向了响应查询请求的Controller之后没有更具体的错误信息,一路跟踪,最后指向我定义的mapper的查询方法,但是我这个方法内没看到可能导致越界问题的代码段,似乎是mybatis抛出的错误。

List<OrderEntity> resultList = orderMapper.selectOrderByOrderId(orderId);

网上查了一堆资料,基本上都是在说定义了sql语句的xml文件中有错误,检查了一遍,没出现网上所说的单双引号,美元符和井号导致的问题。

把sql语句拉出来单独跑,可以跑通,说明不是sql的问题,但可以定位应该是OrderMapper.xml的问题。

仔细检查了一遍定义sql的OrderMapper.xml文件,发现OrderMapper.class在OrderMapper.xml文件中的注册包路径不对。

因为我没有使用下面这种整个package注册mapper接口文件的形式,因此我在xml文件中注册mapper的class需要写到具体的mapper而不是写到mapper的所在包。

<!-- 注册整个包下面的mapper类,Register all interfaces in a package as mappers -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

修改了xml中mapper的namespace注册语句,问题解决!

修改内容:

<mapper namespace="com.xxx.xxxx.order.mapper">

改为

<mapper namespace="com.xxx.xxx.order.mapper.OrderMapper">

这个错误信息还可能是其他问题导致的,基本上都是xml文件的问题,本文只写明本人所遇到的情况,希望能帮到和我遇到一样问题的人。

 

始发于个人博客:

http://www.lanx86.fun/mooyu2/viewblog?bId=10

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值