HikariPool-1-需要dataSource或dataSourceClassName或jdbcUrl

时间:2018-08-29 13:50:28

标签: java spring-mvc spring-boot hikaricp

我正在尝试遵循此guide来创建一个为我提供DataSource对象的bean,但是当我尝试访问数据源时,例如,通过这种方式:

Connection connection  = datasource.getConnection();
            Statement stmt=connection.createStatement();  
            ResultSet rs=stmt.executeQuery("select * from products");   

我收到此错误:

 HikariPool-1 - dataSource or dataSourceClassName or jdbcUrl is required.

由于我阅读了许多示例,因此我多次编辑代码。

这是我代码的最新版本

@Configuration
@ComponentScan("com.packagename.webstore")
public class RootApplicationContextConfig {

    @Bean 
    @ConfigurationProperties(prefix = "spring.datasource")
    public HikariDataSource  dataSource() {     
        return DataSourceBuilder.create().type(HikariDataSource.class).build();

    } 
}

这是src / main / resources文件夹中的application.properties文件:

spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=password
spring.datasource.driverClassName=com.mysql.jdbc.Driver

这是我的依赖项:

enter image description here

有人知道我的错误吗? 谢谢

1 个答案:

答案 0 :(得分:0)

这应该对您有用。

doSomething

您尝试过Spring数据存储库吗?如果使用Spring数据存储库,则不必指定Datasource对象。如果要实现存储库,可以遵循以下示例:

# DataSource settings: Database configurations
spring.datasource.url = jdbc:mysql://localhost:3306/db_example
spring.datasource.username = springuser
spring.datasource.password = password

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

要在MVC @Service上调用服务。

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductRepository extends CrudRepository<Product, Long> {

}