Erro no método fechaConexao

4 respostas
M

Pessoal,

Segue, abaixo, o código-fonte de uma classe Java para conexão a um banco de dados Oracle

/*

  • Conexao.java
  • Created on 29 de Setembro de 2008, 11:28
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */
    package persistencia;
import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

/**
*

  • @author Max Carvalho
    */
    public class Conexao {

    // atributos privados
    
    // definem parametros de conexão com o banco
    
    private  String driver = oracle.jdbc.driver.OracleDriver;
    
    private  String url = jdbc:oracle:thin:@oracle.nti.ufpb.br:1521:ufpb;
    
    private  String username = prpg_testes;
    
    private  String password = 7tst_rg;
    
    private  Connection conn;
    

    // inicio construtor
    /** Creates a new instance of Conexao */
    public Conexao() {

    obtemConexao();
    

    }
    // fim construtor

    /* inicio metodo obtemConexao() */
    public Connection obtemConexao() {

    try { // inicio bloco try-catch
    
        // carrega o driver
        Class.forName(driver);
        // obtem uma instancia de conexao
        conn = DriverManager.getConnection(url,username,password );
       
        return conn;
       
    } catch (ClassNotFoundException cnfex) {
       
        System.err.println("Falha ao carregar o driver JDBC.");
        cnfex.printStackTrace();
        conn = null;
        return conn;
    
    }   catch (SQLException sqlex) {
       
       System.err.println( "Impossivel conectar" );
       sqlex.printStackTrace();
       conn = null;
       return conn;
    

    }
    // fim bloco try-catch

    } /* fim metodo obtemConexao() */

    /* inicio metodo fechaConexao() */
    public void fechaConexao() {

    conn.close();
    

    }
    // fim metodo fechaConexao()

}


4 Respostas

fiaux

Fica mais fácil se você postar o erro. E usar tags [code] para postar o código.

M

Quando tento compilar a classe, aparece a seguinte mensagem de erro :

“unreported exception java.sql.SQLExcpetion; must be caught or declared to be thrown”

Quer dizer que o método “close()” também precisa ter tratamento de exceções, assim como eu fiz no método obtemConexao() ?

O que é melhor fazer com as exceções desses métodos obtemConexao() e fechaConexao() : capturar ou lançá-las para os métodos que os chamarem ?

Agradece a atenção,

Max W. V. Carvalho

thiagocg

Na minha opnião para evitar o aninhamento de blocos try catch o melhor é dar um throw da exception trata-la na camada mais alta de sua aplicação!

mduques

/* inicio metodo fechaConexao() */
public void fechaConexao() {

try{

if (conn !=null)

conn.close();

}catch(SQLException e){

//faz o que quiser aqui

conn=null;

}

}

Criado 29 de setembro de 2008
Ultima resposta 29 de set. de 2008
Respostas 4
Participantes 4