ERRO The supplied java.sql.Connection object is null

Boa tarde, sou Novo ness ramo de Programaçao, estou com esse erro ao tentar gerar um relatorio pela Aplicação ( The supplied java.sql.Connection object is null.). Pelo Ireport o relatorio é exibido com sucesso, mas na aplicaçao não. No subReport estou utilizando uma Tabela, ao tentar abrir pela Aplicação, a Tabela não abre na aplicação, mas o Relatorio principal sim. Estou passando um id como parametro. Vir que você já passou por isso em outro tempo, se alguem pude me ajudar, agradeço muito. Obrigado

Veja se este link pode te ajudar.

Amigo, desculpa, mas tentei dessa forma e não deu certo!

Veja esse.

PS.: caso não saiba, você consegue pesquisar posts antigos que talvez resolva teu problema. Eu to pesquisando alguns aqui no GUJ mesmo e te passando porque também não manjo disso kkk

Posta o código que não está funcionando.

Bom dia!

Classe Conexao:

@Railson_Fernandes, poste o código diretamente na resposta, e formate-o usando o botão </>, para destacar como código fonte. Imagem ninguém consegue compilar e te ajudar, mas com código fonte sim, entendeste?

Sem usar o botão ficaria desta forma:

public void formataCodigo (){

String x = “Sem formatação!”;

}

Agora usando o botão:

public void formataCodigo (){

String x = "Com formatação!";

}

Formato de resposta interessante. Onde será que já o vi? ^^

1 curtida

Com algum grande sábio por ai… rsrsrs :sweat_smile:

1 curtida

public void geraRelatorio(){

    conexao = Conexao2.getConnection();
   // JOptionPane.showMessageDialog(null,"" + conexao);
    
    int id = 4;
    String file = "C:/RELATORIO_HOST/relatorio/Orcamento/Tabela.jasper";
    //String file = "src/tmp/Tabela.jasper";
  HashMap filtro = new  HashMap();
    //Map<String, Object> filtro = new HashMap<String, Object>();
         filtro.put("id", id);
        // filtro.put("id", id); 
         
         //filtro.put("SUBREPORT_DIR","C:/RELATORIO_HOST/relatorio/Orcamento/");
         //filtro.put("SUBREPORT_DIR","C:/RELATORIO_HOST/relatorio/Orcamento/Tabela_Auxiliar.jasper");
         //filtro.put("REPORT_CONNECTION",conexao);
         //filtro.put("REPORT_CONNECTION",con);
         //filtro.put("SUBREPORT_DIR","Tabela_Auxiliar.jasper");
     //Connection conexao = null;
    try{
        //conexao = new Conexao().criaConexao();
        JRResultSetDataSource jrsds = new JRResultSetDataSource(getResultSet(conexao,id));
       // JOptionPane.showMessageDialog(null,"" + conexao);
        JasperPrint print = JasperFillManager.fillReport(file, filtro, jrsds);
        JasperViewer jv = new JasperViewer(print, false);
       jv.setVisible(true);
    }catch(Exception e){
    JOptionPane.showMessageDialog(null, "PREENCHIMENTO INCORRETO! \n" + e);
    }
    /*
    finally {
        try { 
    // Sempre mando fechar a conexão, mesmo que tenha dado erro
            if (conexao != null)   
                conexao.close();      
        } catch (SQLException e) {    
        }      
    } 
    
*/

}
private ResultSet getResultSet(Connection conexao, int id) throws SQLException,
ClassNotFoundException {
Statement stmt = conexao.createStatement();
ResultSet rs = stmt.executeQuery("select P.id_produto as COD,P.PRODUTO,G.GRUPO AS GRUPO,p.grupo as idGrupo FROM PRODUTOS AS P "
+ "INNER JOIN PRODUTOS_GRUPO AS G ON P.GRUPO = G.ID where p.estoque > 0 and p.grupo = " + id);
// ResultSet rs = stmt.executeQuery("select P.id_produto as COD,P.PRODUTO,G.GRUPO,P.ESTOQUE AS ESTOQUE,P.VALOR_VENDA AS VALOR FROM PRODUTOS AS P "
// + “INNER JOIN PRODUTOS_GRUPO AS G ON P.GRUPO = G.ID WHERE P.ESTOQUE > 0 AND P.GRUPO = 1 order by p.produto”);
return rs;
}

private static String caminho = “jdbc:firebirdsql:localhost/3050:C:/TSD/Host/HOST.FDB”;
private static final String driver = “org.firebirdsql.jdbc.FBDriver”;
private static final String usuario = “sysdba”;
private static final String senha = “masterkey”;
public static ResultSet r;
public static Statement sm = null;
public static Connection con;
public Connection conexaorepor;

public static Connection getConnection() {

    try {
        //conexao();
        Class.forName(driver);
        return DriverManager.getConnection(caminho, usuario, senha);
        
        
        
    } catch (ClassNotFoundException | SQLException ex) {
       // JOptionPane.showMessageDialog (null,"ERRO : VERIFIQUE SE O FIRERBIRD ESTAR ATIVO OU COM A VERSÃO COMPATIVEL!","ERRO "+ ex);
        JOptionPane.showMessageDialog(null,"ERRO NA CONEXAO" + ex.getMessage());
        throw new RuntimeException(ex);
        
    }

}

@Railson_Fernandes, perceba que grande parte do seu código continua sem formatação? Leia este post que irá te ajudá-lo nisso: