我正在尝试使用jdbcTemplate来执行sql命令。在这种情况下,我正在尝试将事物插入表中。我在行中发现了空指针异常:jdbcTemplate.execute(subscriptionStatusInsertQuery);
当我尝试运行该行时:
dbMapper.mapToDatabase(newEntry);
其中dbMapper是DBMapper的一个实例。
@Repository
public class DBMapper {
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
@Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void mapToDatabase(Status status) {
String id = status.getId();
String subscriptionStatusInsertQuery = "INSERT INTO t1 (ID) VALUES (id)";
jdbcTemplate.execute(subscriptionStatusInsertQuery);
}
}
我已经尝试过没有jdbcTemplate的setter。我试过取出@Repository注释。我试过有一个包含数据源的setter。仍然有错误。
我该如何解决这个空指针异常?
编辑:
我的application.properties具有以下设置:
spring.datasource.url=jdbc:mysql://localhost:3306/ee_internal
spring.datasource.username=ee
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.password=mypassword
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1
从我的pom.xml:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>