整合JdbcTemplate报错Failed to determine a suitable driver class

一开始整合JdbcTemplate的时候,报错Failed to determine a suitable driver class

这是因为spring-boot-starter-jdbc根据自动配置约束自己去配置数据源,而项目中并没有dataSource相关的配置,所以出错。

然后需要首先在启动类中排除数据源自动配置

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

然后加入dataSource的配置类

@Configuration
public class DataSourceConfig{
	
	@Autowired
	private Environment env;
	
	@Bean
	public DataSource dataSource() {
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setUrl(env.getProperty("spring.datasourse.url"));
		dataSource.setUsername(env.getProperty("spring.datasourse.username"));
		dataSource.setPassword(env.getProperty("spring.datasourse.password"));
		dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
		return dataSource;
	}
}

至此,问题解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当在使用JDK 17和Dynamic-Datasource 4.0尝试动态切换数据源时,如果遇到"Failed to determine a suitable driver class"错误,这通常意味着Java在试图连接数据库时找不到对应的数据源驱动程序。这里有几个可能的原因和解决方法: 1. **驱动程序缺失**:确保你已经将正确的数据库驱动程序添加到项目的类路径(classpath)中。例如,如果你使用的是MySQL,你需要mysql-connector-java JAR。 2. **Maven或Gradle配置问题**:如果你使用构建工具如Maven或Gradle管理依赖,检查pom.xml(Maven)或build.gradle(Gradle)文件中的数据库驱动依赖是否正确配置并且版本匹配。 3. **`spring-boot-devtools`影响**:如果在开发环境中使用了Spring Boot DevTools,尝试关闭它或配置不自动重启应用,因为DevTools可能会覆盖原有的DataSource配置。 4. **DataSource注解配置**:检查你的Spring Boot配置文件(application.properties或application.yml),确认数据源的driverClassName和url属性是否正确设置。 5. **环境变量或系统路径问题**:确保系统的CLASSPATH环境变量中包含了数据源驱动的JAR文件,或者在Java启动命令行中明确指定驱动路径。 6. **代码引用问题**:确保你的代码没有直接使用硬编码的Driver类名,而是通过Spring的DataSource或JdbcTemplate等接口来访问数据库。 相关问题: 1. 如何查看当前项目依赖的数据库驱动类路径? 2. 如何在Spring Boot中正确声明和配置数据源? 3. 如果我手动添加驱动,如何确保其在启动时被加载?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值