mybatis查询结果返回为空(NULL)但是查数据库能查到

在自己搭的项目中出现了这个错误。

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating interface com.chun.zeroyuanlottery.mapper.ReviewLotteryGoodsMapper with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.chun.zeroyuanlottery.mapper.ReviewLotteryGoodsMapper.()

经过长时间的思考,现象如下:resultType是java库的实体类(如integer等),能返回值,如果是自己写的实体类,则属性字段返回null,唯独id(表字段和实体类同名)有返回值,还有个现象就是 代码显示错误。所以猜测是select的返回值字段与实体类不一致,也就是无法映射到实体类进行封装。

解决办法:
mybatis开启驼峰命名。
前提:数据库表设计按照规范“字段名中各单词使用下划线"_"划分”;如user_id 则实体类的字段为userId
1).yml文件中配置:

#mybatis配置
mybatis:
    # 映射文件所在路径
    mapper-locations: classpath:mapper/*.xml
    # pojo类所在包路径
    type-aliases-package: com.chun.zeroyuanlottery.model
    configuration:
        map-underscore-to-camel-case: true

2)指定配置文件下进行配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--开启驼峰命名规则自动转换-->
    <settings>
    <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>
</configuration>

yml需指定配置文件:

mybatis:
    # 映射文件所在路径
    mapper-locations: classpath:mapper/*.xml
    # pojo类所在包路径
    type-aliases-package: com.chun.zeroyuanlottery.model
	configLocation: classpath:/mybatis-config.xml
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值