Sei sulla pagina 1di 5

Manipulando Banco de Dados (MySql)

com Interface Gráfica (Java Swing) – Parte 1

Primeiramente vamos construir uma janela, contendo os campos que


correspondem as informações que deseja-se gravar no banco de dados. Abaixo
encontra-se a janela projetada pelo NetBeans.

O próximo passo é construir uma base de dados para armazenar as


informações. Essa Base de dados irá conter apenas uma tabela, chamada
Cliente, e que contem os mesmos campos da janela de interface gráfica. Pode-
se observar que a tabela Cliente contem o campo codigo, e a interface gráfica
não apresenta esse campo, isso se deve ao motivo de a geração de código ser
responsabilidade do banco de dados, uma vez que a opção AI (auto increment)
seja atribuída ao campo codigo.
Dessa forma todos os registro armazenados na tabela Cliente terão um
código único, representando assim a chave primária dos registro. A tabela
abaixo possibilita gravar todas as informações desejadas.
Agora vamos aos passos necessários para se estabelecer uma conexão com o
banco de dados MySql. O código abaixo realiza a conexão com o banco. ( ver
introdução JDBC )

* Obs.: não esquecer de adicionar as bibliotecas do driver Mysql, como


descrito na introdução jdbc.

//fazer a conexao com o mysql

java.sql.Connection con;
try {
Class.forName("org.gjt.mm.mysql.Driver");
con = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost:3306/bd_aulas", "aula","123");
}
catch (Exception e) {
e.printStackTrace();
throw new java.lang.RuntimeException("erro ao conectar");
}

//Inserindo Dados

String nome = "joao";


String telefone = "555 1234";
String rg = "123";
String cpf = "321";

String comando = "insert into Cliente (nome, telefone, rg, cpf) " +
"values " + "('"+nome+"','" +telefone+"','"+ rg+"','" +cpf+"')";

try{
java.sql.Statement stmt = con.createStatement();
stmt.executeUpdate(comando);
stmt.close();
con.close();
}
catch(java.sql.SQLException e){
throw new java.lang.RuntimeException(e.getMessage());
}

//Fechando a Conexão:

try {
con.close();
}
catch (Exception e) {
e.printStackTrace();
throw new java.lang.RuntimeException("erro fechar");
}
A listagem acima demonstra o código necessário para a realização da
gravação no banco de dados. O procedimentos são:

1. Fazer a conexão → informar todos os dados da conexão, ip do


servidor, usuário, senha, banco de dados a manipular

2. Inserir os dados → construir uma String que representa o sql para


o insert, concatenado os valores para formar a String final

3. Fechar a conexão → sempre que executar uma operação no banco


de dados, deve-se realizar o fechamento da conexão

Lembrando que queremos que a gravação ocorra no momento que o


usuário clica no botão gravar, vamos fazer com que todo esse código seja
executado no evento de clique do botão.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


// aqui vai o codigo para gravacao

Fazer a conexão
Inserir os dados
Fechar a conexão
}

Todo o código deve ser escrito dentro do método de tratamento do botão.


Repare que a informação a ser gravada, esta definida estaticamente, e
logicamente, não é oque desejamos, queremos gravar as informações digitas
pelo usario, que contem nos campos da janela da interface gráfica. Para isso
vamos fazer uma pequena alteração.

//Inserindo Dados
String nome = this.jTextField1.getText();
String telefone = this.jTextField2.getText();
String rg = this.jTextField3.getText();
String cpf = this.jTextField4.getText();

A listagem acima faz com que os valores sejam capturados dos campos de
texto digitados pelo usuário., para ser concatenado na String que irá representar
a instrução sql.
Vamos Executar a aplicação, e inserir um registro:

Após clicar no botão Gravar, verificar no banco de dados o resultado.

Como observado, o registro foi inserido com sucesso.

Vamos as considerações.

Apesar de funcional, a aplicação apresenta um código pouco flexível, e


extremamente dependente.
Ao utilizar a manipulação de banco de dados diretamente na interface
gráfica, obrigamos a visualização conhecer os detalhes de gravação, como
senha do banco, a estrutura das tabelas, dentre outros detalhes da persistência de
dados.
Nota-se facilmente que a visualização esta fazendo muito mais que a sua
obrigação, tornando essa parte do sistema muito sobrecarregada de
funcionalidades, ou seja, se preocupa com os componentes gráficos e também
com os mecanismos de gravação no banco de dados.
Com a estrutura utilizada, cada janela que pretende manipular os banco de
dados deve conter todo o código para conexão com o banco, sendo assim, se o
programa apresentar 20 janelas de manipulação, os parâmetros de conexão
estarão em todas as janelas.
Caso seja necessário alguma alteração nesses parâmetros, como senha ou
nome de alguma tabela, deve-se alterar em todas as instancias que a manipulam.
Outra observação é que não ocorre a manipulação de objetos, não utiliza
das suas vantagens de representação, não está definido as responsabilidades,
ouse já, tornou-se uma aplicação orientada a botões.

Como podemos melhorar esses aspectos negativos ?