[英]How to use jdbcTemplate in another class than main class?
我有一個問題,我使用 JDBC 驅動程序創建了一個到 Oracle 數據庫的連接。
我在互聯網上找到的所有示例都使用如下:
@SpringBootApplication
public class CanalCorSdqsApplication implements CommandLineRunner{
public static void main(String[] args) throws Exception {
SpringApplication.run(CanalCorSdqsApplication.class, args);
}
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void run(String... args) throws Exception {
String sql = "SELECT * FROM USUARIO_WEBSERVICES";
List<UsuarioWebService> students = jdbcTemplate.query(sql,BeanPropertyRowMapper.newInstance(UsuarioWebService.class));
students.forEach(System.out :: println);
System.out.println(students.get(0).getLoginUsuario());
}
這對我也有用,但是當我嘗試在另一堂課中做同樣的事情時,它會拋出
java.lang.NullPointerException:
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
public class ProcesoPrincipal implements CommandLineRunner {
@Autowired
private JdbcTemplate jdbcTemplate;
public void consulta(){
String sql = "SELECT * FROM USUARIO_WEBSERVICES";
List<UsuarioWebService> students = jdbcTemplate.query(sql,BeanPropertyRowMapper.newInstance(UsuarioWebService.class));
students.forEach(System.out :: println);
}
@Override
public void run(String... args) throws Exception {
String sql = "SELECT * FROM USUARIO_WEBSERVICES";
List<UsuarioWebService> students = jdbcTemplate.query(sql,BeanPropertyRowMapper.newInstance(UsuarioWebService.class));
students.forEach(System.out :: println);
}
在這兩種方法中,它都會拋出java.lang.NullPointerException 。
你知道它發生了什么以及如何解決嗎?
這是項目:
您需要將@Service
或@Component
添加到ProcesoPrincipal
類。
您的新類實現了 CommandLineRunner。 為什么? 起飛實現 CommandLineRunner。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.