簡體   English   中英

如何在主類以外的另一個類中使用 jdbcTemplate?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM