我在跟踪https://spring.io/guides/gs/relational-data-access/ 所以在我的主要课堂上我有:
@SpringBootApplication
@ComponentScan(basePackages = {"com.example"})
public class SpringGuideApplication implements CommandLineRunner {
private static final Logger log = LoggerFactory.getLogger(SpringGuideApplication.class);
@Autowired
JdbcTemplate jdbcTemplate;
public static void main(String[] args) {
SpringApplication.run(SpringGuideApplication.class, args);
}
@Override
public void run(String... strings) throws Exception {
log.info("Creating tables");
jdbcTemplate.execute("DROP TABLE clients IF EXISTS");
}
}
此时我收到了一个错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field jdbcTemplate in com.example.spring_guide.SpringGuideApplication required a bean of type 'org.springframework.jdbc.core.JdbcTemplate' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'org.springframework.jdbc.core.JdbcTemplate' in your configuration.
Process finished with exit code 1
我理解错误,但要创造 @Bean JdbcTemplate
我需要使用:
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
但我不想要,我不想要 dataSource
文件,我想有刚刚在内存数据库。有没有办法创造 JdbcTemplate
豆子没有 DataSource
? 这个教程有什么用?
在pom.xml中,现在我有:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
但也尝试过
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.4.0</version>
</dependency>
没有成功。
1条答案
按热度按时间xe55xuns1#
这就是生活的美
Spring-Boot
. 它看到你在用JdbcTemplate
所以它需要创建数据源,因为您没有提供任何信息,所以它失败了。即使使用内存数据库,也需要提供这些信息,所以spring-boot
可以创建JdbcTemplate
为你。我不确定您使用的是哪个内存数据库,但下面是一个如何使用h2的示例。您可以在单个db用户文档中找到这些信息。spring.datasource.url=jdbc:h2:mem:yourdb
spring.datasource.driverClassName=org.h2.Driverspring.datasource.username=
spring.datasource.password=spring.jpa.database-platform=org.hibernate.dialect.H2Dialect