gpt4 book ai didi

java - JDBCTemplate 给出空指针异常?

转载 作者:行者123 更新时间:2023-11-29 20:48:38 25 4
gpt4 key购买 nike

我试图将一些值插入到我的表中,但我不断收到空指针异常。我首先认为这是因为某些值是 null,但即使那些从不为 null 的值也会给我 NPE。

这是我的 TwitterJDBCTemplate:

@Service
public class TwitterJDBCTemplate {


@Autowired
private DataSource dataSource;
private JdbcTemplate jdbcTemplateObject;




public void storeTweet(long id, long user_id, String created_at, String language, String message, String searchterm,
String user_description, String user_location, String user_pic, String user_screenname, String username) {

String SQL = "insert into tweets (id, user_id, created_at, language,"
+ "message, searchterm, user_description, user_location, user_pic,"
+ "user_screenname, username) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

jdbcTemplateObject.update(SQL, new Object[] { id, user_id, created_at, language, message, searchterm,
user_description, user_location, user_pic, user_screenname, username });
}

这是我的主应用程序:

@SpringBootApplication
@EnableScheduling
public class TwitterApp {

public static void main(String[] args) {

// TODO Auto-generated method stub
SpringApplication.run(TwitterApp.class, args);

}
}

我的application.properties文件:

server.port: 9040
management.port: 9041
management.address: 127.0.0.1

spring.datasource.url=jdbc:mysql://localhost:3306/twitter

spring.datasource.username=root
spring.datasource.password=********

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

spring.jpa.show-sql=false

spring.jpa.hibernate.ddl-auto=create

在我的 TweetController 内部:

@RestController
@Scope("singleton")
public class TweetController {


@Autowired
TwitterJDBCTemplate template;

最佳答案

您没有在应用程序中创建 jdbcTemplate 对象,这就是您收到 NPE 的原因。我认为有两个可能的选择:

1) 将 jdbcTemplate bean 添加到 spring 上下文并 Autowiring 它。

@Bean
public JdbcTemplate getJdbcTemplate() {
return new JdbcTemplate(dataSource());
}

还有你的类(class)

@Service
public class TwitterJDBCTemplate {


@Autowired
private JdbcTemplate jdbcTemplateObject;
.....
}

2) 在类中创建 jdbcTemplate

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

此外,我相信使用具有大量参数的方法并不是最佳实践。也许您应该像这样创建自定义类 Twit 或 smth。

关于java - JDBCTemplate 给出空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38235721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com