整合Mybatis时报错org.mybatis.spring.MyBatisSystemException(已解决)

项目场景:

SpringBoot整合Mybatis时报错:没有XXX的getter方法


问题描述

SpringBoot整合Mybatis时,insert方法报错没有a_id的getter方法
nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'a_id' in 'class com.tyut.springboottest1.domain.Comment'

mapper:

    @Insert("insert into t_comment(content,author,a_id)" +
            "values (#{content},#{author},#{a_id})")
    int insertComment(Comment comment);

test:

    @Test
    public void addComment(){
        Comment comment = new Comment();
        comment.setAuthor("于三");
        comment.setContent("手握日月摘星辰");
        comment.setaId(2);
        int i = cm.insertComment(comment);
        System.out.println(i);
    }

报错:
报错


原因分析:

检查前面mapper接口方法,发现a_id字段在类中被设计为了aId而方法中还是使用a_id字段名
原因分析


解决方案:

将方法中的字段改为属性名

    @Insert("insert into t_comment(content,author,a_id)" +
            "values (#{content},#{author},#{aId})")
    int insertComment(Comment comment);

解决:
解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
`org.mybatis.spring.MyBatisSystemException` 是 MyBatis-Spring 框架中抛出的一个异常,它通常表示在使用 MyBatis 进行数据库操作遇到了严重的问题,可能是配置错误、数据源问题、SQL执行失败或者是 SpringMyBatis 的集成不当等原因导致的。解决这类异常通常需要按照以下步骤进行: 1. **检查日志**:查看详细的异常堆栈信息,这会在日志文件(如 logback.xml 或 log4j.properties)中,通常会提供关于异常发生的具体位置和原因的线索。 2. **检查配置**:确保 MyBatis 的配置(mybatis-config.xml)正确无误,包括数据源(DataSource)、SqlSessionFactory 的创建、Mapper 的扫描路径等。 3. **Spring 配置**:确认 SpringMyBatis整合配置是否正确,比如 MapperScannerConfigurer 或 sqlSessionTemplate 等。 4. **SQL问题**:检查 SQL 语句是否有语法错误,参数绑定是否正确,以及动态查询中的条件表达式是否能够正确解析。 5. **事务管理**:确认事务的开启、提交和回滚是否在预期范围内,特别是在分布式环境下,分布式事务配置可能会影响 MyBatis 的执行。 6. **依赖版本**:确认使用的 MyBatisSpring 和其他依赖库的版本是否兼容,有候版本冲突也可能引发此类问题。 7. **逐步调试**:如果以上都无法确定问题,可以尝试编写一些测试用例,通过单元测试或集成测试逐步定位问题。 如果遇到具体的异常实例,提供具体的异常信息将有助于给出更精准的解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街酒jsan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值