ERRO The supplied java.sql.Connection object is null

11 respostas
R

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

11 Respostas

S

Veja se este link pode te ajudar.

R

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

S

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

S

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

R

Bom dia!

Classe Conexao:

S

@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!";

}
F

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

S

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

R

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;

}
R
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);
        
    }

}
S

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

Criado 21 de junho de 2019
Ultima resposta 26 de jun. de 2019
Respostas 11
Participantes 4