Ajuda com sql aplicação em java

Estou tentando fazer uma aplicação em java, só para estudar conexão com o banco sql, mas estou com dificuldades em criar essa aplicação. Quero fazer uma aplicação que tenha botões de select, insert, update, delete e coisas desse tipo, que tenha as operações que dá pra fazer no banco, só que primeiro não sei como posso usar a mesma conexão em diferentes métodos, tipo, quero usar a conexão no método inserir, update, select e tal. Segundo, como posso fazer ela fechar só quando vou fechar o programa? já fis vários testes com o bloco finnaly e tal, mas não deu. Terceiro, tem como criar um metódo pra abrir a conexão e fecha-la ou tem que ser vários blocos try catch pra isso, a conexão executa fora do try catch?. Queria muito que alguém me dese uma luz, por que to completamente perdido, só mais uma coisa, o Statement e a conexão tem que ser tipo reiniciados pra executar uma nova query no banco? por que eu vi vários erros aqui enquanto fazia meus testes e acabei imaginando que só poderia ser isso.

https://www.developer.com/java/creating-a-jdbc-gui-application.html

Opa.

Comece desta forma.

Este curso no Youtube lhe dará visão sobre distribuição da aplicação em camadas, o que será bom pra você.

Exemplo de metodo de conexão

public static Connection getConnection() {
Connection con = null;
System.out.println("Conectando ao banco...");
try {
  Class.forName("com.mysql.jdbc.Driver");
  con =  DriverManager.getConnection("jdbc:mysql://127.0.0.1/banco","usuario","senha");
  System.out.println("Conectado.");
} catch (ClassNotFoundException ex) {
    System.out.println("Classe não encontrada, adicione o driver nas bibliotecas.");
  Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
  } catch(SQLException e) {
    System.out.println(e);
    throw new RuntimeException(e);
}
 //retorna sua conexão
 return con;

}

Você irá chamar o método conectar sempre que interagir com o banco de dados.

// pega a conexão e o Statement
Connection con = suaClasse.getConnection();
PreparedStatement stmt = con.prepareStatement("select * from contatos");

// executa um select
ResultSet rs = stmt.executeQuery();

// itera no ResultSet
while (rs.next()) {
}

rs.close();
stmt.close();
con.close();

E por fim

o Statement e a conexão tem que ser tipo reiniciados pra executar uma nova query no banco?

Sim

1 curtida