我在一个Spring Boot项目中,加入数据库访问功能,使用mybatis。结果项目无法启动。以往没有出现过这种问题。不过,以前的项目,都是将现成项目拷贝过去,修修改改,数据库能访问就行,不会太多关注其中的细节。

1、欠缺依赖包

首先报的错误是:
nested exception is java.lang.IllegalArgumentException: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required。

代码可编译,启动失败。

查来查去,发现少了个依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>${druid.version}</version>
</dependency>

为什么要有这个东东?搞不懂。不影响编译,没有就运行不了,而且名字也不带mybatis字眼,让人想破脑袋都找不到原因。

查这个包,说明是这样的:Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。

2、欠缺Mybatis配置

加上上面的依赖包后,错误变了,变成这样子:
对应 Invalid bound statement (not found)

原因是application.yml中少了关于mybatis的配置:

mybatis:
  mapperLocations: classpath:mapper/**/*.xml
  configuration:
    mapUnderscoreToCamelCase: true  # 驼峰转换

在项目时间非常紧张之际,以往正常运行的代码机制忽然报错,而且找不到原因,让人崩溃。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐