Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 1 da Aula 2 - Inserindo e removendo dados

Na minha classe de conexão, foi criado o método getConnection:

static Connection getConnection() throws SQLException

Como preciso criar uma classe de teste de inserção, eu posso dar um extends para ele pegar o getConnection? Não vi nos exercicios, não sei se é o certo, funcionou corretamente.

Segue exemplo:

public class ConectaBD {
    static Connection getConnection() throws SQLException {
        Connection connection = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/loja-virtual", "SA", "");
        return connection;
    }
}

//E a classe de TESTE:

public class TestaInsercao extends ConectaBD {
    public static void main(String[] args) throws SQLException {

        String nome = "Notebook";
        String descricao = "500gb de memoria";

        Connection connection = getConnection();

        String sql = "insert into Produto (nome, descricao) values ('" + nome + "', '" + descricao + "')";
        Statement stmt = connection.createStatement();
        boolean resultado = stmt.execute("insert into Produto (nome, descricao) values ('Notebook', 'Notebook i5')",
                Statement.RETURN_GENERATED_KEYS);
        System.out.println(resultado);

        stmt.close();
        connection.close();
    }
}
3 respostas
solução!

Guilherme , Bom dia !

Sim é possível herdar da classe ConectaBD e irá funcionar perfeitamente .

porém prefira composição do que herança , então não faça estender ConectaBD e sim faça ter ConectaBD como atributo interno .

pois herança faz com que tenha um fraco encapsulamento entre classes e subclasse e forte acoplamento .

Espero ter ajudado , Bons Estudos

Bom dia Guilherme,

Apesar de ter funcionado, penso que não fica elegante fazer isso.

Seria melhor estanciar a classe ConectaBD e depois chamar o metodo getConnection() através do objeto estanciado.

Att,

Entendi perfeitamente, obrigado!