1. Aula 1- Criação do Banco de Dados
Vamos criar uma tabela no Mysql WorkBench:
1. Abra o Mysql WorkBench através do botão iniciar de seu desktop
2. Crie um banco de dados, escolhendo a opção “create schema”
3. Crie o seu banco de dados com o nome Orcamento.
4. Crie uma tabela com o create table.
5. Crie a tabela de calculo, conforme mostra a ilustração abaixo:
6. Defina o campo codigoCalculo como chave primária (PK) e auto
incremento (AI)
7. Click em apply
3. Lembre-se de salvar o sql gerado em uma arquivo txt, isto o ajudara
caso queira construí-lo sem usar o workbanch.
2. Aula 2 - Criação da Aplicação Java
Para que haja comunicação entre o banco de dados que criamos com a
aplicação que faremos a seguir, é necessário carregar o driver da Linguagem
Java (jdbc:Mysql) que será o responsável por fazer a ponte de comunicação
com a fonte de dados. Para que a aula seja mais compreensível, vamos criar
uma classe para fazer apenas a conexão com o banco de dados (classe
“Conexao”) e uma outra classe que chamaremos de “Formulario” que fará a
manipulação do banco (cadastramento, alteração, exclusão e consulta).
Conexão com o Banco de Dados
Faremos agora a conexão com o banco de dados por intermédio da fonte de
dados criada anteriormente. Para que seja feita uma conexão é necessário
carregar o driver que fará a comunicação com a fonte de dados e estabelecer
uma conexão em si. Vamos ter a informação de que houve a conexão através
de uma mensagem que será exibida na janela de prompt, indicando o sucesso
da conexão ou não.
Veja a codificação abaixo necessária para fazer a conexão do banco de dados
e em seguida as explicações sobre cada linha de comando:
3. Explicações das linhas de comando da classe Conexao:
Linha 1: import java.sql.* faz a importação das classes do pacote SQL,
necessárias para a criação da conexão com a ponte de dados JDBC-ODBC e
das classes para a manipulação do banco de dados por meio dos comandos
SQL.
Linha 3 - public class Conexao criação da classe Conexão
Linha 5- static Connection con cria uma conexão chamada con que será
utilizada na linha 9
Linha 8 - public Conexao() cria o método construtor da classe Conexão
Linha 12 - public void Conecta() cria o método conecta que será
responsável por realizar a conexão com o banco.
Linha 15 - Class.forName("org.gjt.mm.mysql.Driver") carrega o driver
que será usado pela aplicação Java para realizar a comunicação com o banco
de dados. Observe que esta linha está inserida do bloco try-catch. Isto significa
que se caso o driver não for localizado na máquina, deve ocorrer a exceção
ClassNotFoundException que envia uma mensagem avisando o usuário do
fato ocorrido - linha 16 - ("Driver JDBC-ODBC não encontrado"). Obs: O driver
varia de acordo com o banco de dados a ser utilizado.
Linha 16 - con = DriverManager.getConnection
("jdbc:mysql://localhost/orcamento","root","123456") estabelece uma
conexão chamada com o nome da fonte de dados a ser usado na conexão,
onde:
JDBC – é o driver da sun, responsável por fazer a conexão ao banco de
dados.
MYSQL – é o driver referente à Mysql – varia de acordo com o banco
que está sendo utilizado pela aplicação Java.
4. orcamento – é o nome do seu banco de dados, root é o usuário e a
senha é 123456.(varia de acordo com a instalação do mysql).
Observe que esta linha também está inserida no bloco try-catch. Caso a
conexão não possa ser realizada por qualquer motivo, ocorre a exceção
SQLException que envia uma mensagem de alerta ao usuário na linha 21 -
("Problemas na conexão com o banco de dados").
Caso a conexão tenha sucesso é dado uma mensagem para o usuário
informando (“Conexão realizada com sucesso")
Linha 28 - public void Fecha() cria o método Fechar a conexão.
Linha 32- con.close() fecha a conexão estabelecida na linha 9. Observe que
esta linha também está inserida no bloco try-catch. Caso ocorra algum
problema no encerramento da conexão, ocorre a exceção SQLException que
envia uma mensagem de alerta ao usuário na linha 36 - ("Problemas no
encerramento da conexão").
Observação: é necessário colocar estes dois componentes em seu programa
para que possa funcionar tanto a conexão com banco de dados, quanto a
classe data.
5. Aula 3 - Formulário de Cadastro
Criação do Formulário Principal onde o mesmo chamará os demais formulários.
Criação do Formulário de Cadastro e as manipulações com o banco de dados
(Inclusão de registros, Exclusão de Registros, Alteração dos campos, Consulta
através do campo chave e etc)
6. import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class Orcamento extends javax.swing.JFrame {
int navega = 0; //variavel apenas para sabermos em qual botao foi clicado
Conexao con_orcamento;
double aliComissao = 0, aliMargem=0, aliImposto=0;
/** Creates new form Orcamento */
public Orcamento()
{
initComponents();
Data mostraData = new Data();
mostraData.le_data();
txData.setText(""+mostraData.dia+"/"+mostraData.mes+"/"+mostraData.ano);
}
7. //-----------------------------------Inicio do Gravar /Inserir------------------------------------------
private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource()==btGravar)// mesmo nome da variavel (evt) ActionEvent
txNumero.setEditable(false);
{
String sql = "insert into calculo (data,nome,horasProjeto,vlrHora,despesas," +
"deslocamentoKm,vlrKm,vlrPedagio,comissao,margem,impostos) values ('"+
txData.getText()+"','"+
txCliente.getText()+"','"+
txHorasProjeto.getText()+"','"+
txVlrHora.getText()+"','"+
txDespesas.getText()+"','"+
txDeslocamento.getText()+"','"+
txVlrKm.getText()+"','"+
txPedagio.getText()+"','"+
txComissao.getText()+"','"+
txMargem.getText()+"','"+
txImpostos.getText()+"')";
conex.Conecta();
try
{
MeuState = Conexao.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
MeuState.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso !");
}
catch (SQLException erro)
{
if (erro.getMessage().equals("General error"))
{
JOptionPane.showMessageDialog(null,"Curso já cadastrado");
}
else
{
JOptionPane.showMessageDialog(null, "Dados inválidos");
}
}
}
conex.fecha();
}
//-----------------------------------Fim do Gravar /Inserir------------------------------------------
//-----------------------------------Inicio do Excluir------------------------------------------
private void btExcluirActionPerformed(java.awt.event.ActionEvent evt)
{
8. txNumero.setEditable(true);
if (evt.getSource()==btExcluir)
{
try
{
String sql = "select *FROM calculo WHERE codigoCalculo ='"+txNumero.getText()+"'";
conex.Conecta();
MeuState = Conexao.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
resultSet = MeuState.executeQuery(sql);
String calculo="";
try
{
resultSet.next();
mostrar_dados();
calculo = "Deletar o Calculo "+resultSet.getString("codigoCalculo");
}
catch (SQLException erro)
{
JOptionPane.showMessageDialog(null,"Calculo não Cadastrado");
return;
}
int c = JOptionPane.showConfirmDialog(null,calculo,"",JOptionPane.YES_NO_OPTION);
if(c==JOptionPane.YES_OPTION)
{
sql="DELETE FROM calculo WHERE CodigoCalculo='"+txNumero.getText()+"'";
int r = MeuState.executeUpdate(sql);
if(r==1)
JOptionPane.showMessageDialog(null,"Exclusao realizada com sucesso!");
else
JOptionPane.showMessageDialog(null, "Não foi possivel excluir o calculo!");
}
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,"Calculo não cadastrado!");
}
}
conex.fecha();
}
//-----------------------------------Fim do Excluir---------------------------------------------------
//----------------------------------------Inicio do Sair--------------------------------------------------
private void btSairActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}
//------------------------------------------Fim do sair----------------------------------------------------
15. public String mes, dia, ano, dia_semana, hora;
SimpleDateFormat horaformatada = new SimpleDateFormat("HH:mm:ss");
public void le_hora()
{
Date horaAtual = new Date();
hora = horaformatada.format(horaAtual);
}
public void le_data()
{
Date data = new Date();
dia = ""+data.getDate();
ano = ""+(1900 + data.getYear());
switch(data.getDay())
{
case 0: dia_semana = "Domingo";break;
case 1: dia_semana = "Segunda";break;
case 2: dia_semana = "Terça";break;
case 3: dia_semana = "Quarta";break;
case 4: dia_semana = "Quinta";break;
case 5: dia_semana = "Sexta";break;
case 6: dia_semana = "Sábado";break;
}
switch(data.getMonth())
{
case 0: mes = "Janeiro";break;
case 1: mes = "Fevereiro";break;
case 2: mes = "Março";break;
case 3: mes = "Abril";break;
case 4: mes = "Maio";break;
case 5: mes = "Junho";break;
case 6: mes = "Julho";break;
case 7: mes = "Agosto";break;
case 8: mes = "Setembro";break;
case 9: mes = "Outubro";break;
case 10: mes = "Novembro";break;
case 11: mes = "Dezembro";break;
}
}
}
A classe data é utilizada para coletar e tratar a data do sistema, porem para
sua utilização é necessário a instalação de um componente timer.
Aula 4 - Rotina de Inserção de Registros
16. Vamos estudar a codificação da rotina para inserir novos registros na
nossa tabela de alunos (CALCULO) criada no MySQL:
//-----------------------------------Inicio do Gravar /Inserir------------------------------------------
private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource()==btGravar)// mesmo nome da variavel (evt) ActionEvent
txNumero.setEditable(false);
{
String sql = "insert into calculo (data,nome,horasProjeto,vlrHora,despesas," +
"deslocamentoKm,vlrKm,vlrPedagio,comissao,margem,impostos) values ('"+
txData.getText()+"','"+
txCliente.getText()+"','"+
txHorasProjeto.getText()+"','"+
txVlrHora.getText()+"','"+
txDespesas.getText()+"','"+
txDeslocamento.getText()+"','"+
txVlrKm.getText()+"','"+
txPedagio.getText()+"','"+
txComissao.getText()+"','"+
txMargem.getText()+"','"+
txImpostos.getText()+"')";
conex.Conecta();
try
{
MeuState = Conexao.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
MeuState.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso !");
}
catch (SQLException erro)
{
if (erro.getMessage().equals("General error"))
{
JOptionPane.showMessageDialog(null,"Curso já cadastrado");
}
else
{
JOptionPane.showMessageDialog(null, "Dados inválidos");
}
}
}
conex.fecha();
17. }
//-----------------------------------Fim do Gravar /Inserir------------------------------------------
if (evt.getSource()==btInserir) { Se o usuário pressionar o botão Inserir,
ocorrem os seguintes procedimentos descritos nas linhas abaixo.
Contém a declaração de uma string chamada sql usada para armazenar o
conteúdo do comando que será usado na inserção de um registro. Para inserir
um registro, usamos o seguinte padrão SQL: INSERT INTO nome da tabela
(nomes dos campos) Values (conteúdo dos campos). Como sabemos pelos
conceitos do SQL, INSERT INTO informa que um registro será inserido. A
seguir será informado o nome da tabela, neste caso, TBALUNOS (nome da
tabela que criei no Mysql). Ao inserir um registro, é necessário especificar em
quais campos do registro serão inseridos os valores. Neste caso, serão
inseridos valores em todos os campos, como pode ser observado entre
(data,nome,horasProjeto,vlrHora,despesas,""deslocamentoKm,vlrKm,vlrPedagio,comissao,mar
gem,impostos). Feito isto é preciso definir os conteúdos dos valores. Isto é feito a
partir da palavra Values, como pode ser observado no: Values ('"+
txData.getText()+"','"+
txCliente.getText()+"','"+
txHorasProjeto.getText()+"','"+
txVlrHora.getText()+"','"+
txDespesas.getText()+"','"+
txDeslocamento.getText()+"','"+
txVlrKm.getText()+"','"+
txPedagio.getText()+"','"+
txComissao.getText()+"','"+
txMargem.getText()+"','"+
txImpostos.getText()+"')";
O conteúdo a ser inserido deve ser colocado na mesma ordem dos nomes dos
campos.
conex.Conecta(); Esta linha chama a conexão com o banco de dados,
através do método Conecta() criado na classe Conexão
MeuState = Conexao.con.createStatement(); cria um statement, isto é,
um objeto chamado MeuState que possibilita a utilização de um comando
SQL na conexão realizada com o banco de dados chamada “con”. Pode-se
dizer que a interface Statement permite executar um comando SQL que
será usado no programa.
18. ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY
permite você fazer as alterações no banco, sem esta linha seu programa
exibira um erro de thead.
MeuState.executeUpdate(sql); o método executeUpdate é usado para
executar comandos SQL de ação na linguagem Java.
Se a conexão for estabelecida com o banco de dados sem nenhum
problema, é dado a seguinte mensagem:"Gravação realizada com sucesso
!"
Tratamento de exceções if (erro.getMessage().equals("General
error")) – Valida se o campo matrícula (que é nossa chave primária) está
sendo duplicado. Se estiver, é dado a seguinte mensagem: "Aluno já
cadastrado" . Se o usuário cadastrou a data errada, dar a mensagem: "Data
inválida". Tratei apenas estas exceções, mas você pode acrescentar mais
funcionalidades para tratamento de erros, deixando seu sistema mais
conciso.
conex.Fecha(); Fecha a conexão com o banco de dados.
Aula 5 - Rotina de Alteração de Registros
Vamos estudar a codificação da rotina para alterar nossos registros
gravados na tabela de alunos (CALCULO) criada no MySQL:
//-----------------------------------Inicio do Alterar------------------------------------------
private void btAlterarActionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource()==btAlterar)
{
String sql = "update calculo set data='"+txData.getText()+"',
nome='"+txCliente.getText()+"'"+
",horasProjeto='"+txHorasProjeto.getText()+"'" +
",vlrHora='"+txVlrHora.getText()+"'" +
",despesas='"+txDespesas.getText()+"'"+
",deslocamentoKm='"+txDeslocamento.getText()+"'"+
",vlrKm='"+txVlrKm.getText()+"'"+
",vlrPedagio='"+txPedagio.getText()+"'"+
",comissao='"+txComissao.getText()+"'"+
",margem='"+txMargem.getText()+"'"+
",impostos='"+txImpostos.getText()+"'"+
"where codigoCalculo='"+txNumero.getText()+"'";
19. conex.Conecta();
try
{
MeuState = Conexao.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
int r = MeuState.executeUpdate(sql);
if(r!=0)
JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");
else
JOptionPane.showMessageDialog(null,"Problemas na alteração!");
}
catch (SQLException erro)
{
JOptionPane.showMessageDialog(null,"Calculo não cadastrado!");
}
}
conex.fecha();
}
//-----------------------------------Fim do Alterar------------------------------------------
if (e.getSource()==btAtualizar) Se o usuário pressionar o botão
Atualizar, ocorrem os seguintes procedimentos descritos nas linhas abaixo.
Contém a declaração do comando SQL que faz a alteração, através da
string chamada sql usada para armazenar o conteúdo do comando que será
usado na atualização do registro. Para alterar um registro, usamos o
seguinte padrão SQL: UPDATE nome da tabela SET nome dos campos =
conteúdo dos campos WHERE nome do campo = condição.
Como sabemos pelos conceitos do SQL, a palavra UPDATE informa que um
registro será atualizado, no caso, a tabela TBCalculo. A seguir, é colocado a
palavra SET que definirá o nome dos campos e os conteúdos correspondentes
a serem gravados. Ao alterar um registro, é necessário especificar em quais
campos do registro os valores serão atualizados. Observe que todos os
campos ('"+txData.getText()+"', nome='"+txCliente.getText()+"'"+
",horasProjeto='"+txHorasProjeto.getText()+"'" +
",vlrHora='"+txVlrHora.getText()+"'" +
",despesas='"+txDespesas.getText()+"'"+
",deslocamentoKm='"+txDeslocamento.getText()+"'"+
",vlrKm='"+txVlrKm.getText()+"'"+
20. ",vlrPedagio='"+txPedagio.getText()+"'"+
",comissao='"+txComissao.getText()+"'"+
",margem='"+txMargem.getText()+"'"+
",impostos='"+txImpostos.getText()+"'"+
"where codigoCalculo='"+txNumero.getText()+"'";
) são usados e seu conteúdo provém das caixas de texto do formulário. A
palavra WHERE define a condição para que o registro seja atualizado e
esta condição será sempre verificada a partir da matrícula do aluno. Por
exemplo: atualize o registro em que a matrícula do aluno seja “42006”
(WHERE codigoCalculo = “42006”). Isto significa que antes de atualizar o
registro, o comando SQL varre os registros a partir da matrícula 42006 e ao
encontrar realiza a alteração.
conex.Conecta(); Esta linha chama a conexão com o banco de dados,
através do método Conecta() criado na classe Conexão.
MeuState = Conexao.con.createStatement(); cria um statement, isto é,
um objeto chamado MeuState que possibilita a utilização de um comando
SQL na conexão realizada com o banco de dados chamada “con”. Pode-se
dizer que a interface Statement permite executar um comando SQL que
será usado no programa.
int r = MeuState.executeUpdate(sql); execução do comando para
atualização do registro. Da mesma forma que na inserção, para alterar um
registro também é usado o método executeUpdate.
if (r==1) Nesta linha foi usada uma variável “r” para verificar o sucesso
ou não do comando de atualização. Se o resultado da ação retornar a 1, ou
seja, se r receber 1, significa que o comando SQL foi executado com
sucesso, caso contrário, significa que não obteve sucesso na alteração dos
dados, pois pode acontecer do registro não existir na tabela
Aula 6 - Rotina de Exclusão de Registros
Vamos estudar a codificação da rotina para excluir os registros gravados
na nossa tabela de alunos (TBORCAMENTO) criada no MySQL:
//-----------------------------------Inicio do Excluir------------------------------------------
private void btExcluirActionPerformed(java.awt.event.ActionEvent evt)
{
txNumero.setEditable(true);
if (evt.getSource()==btExcluir)
{
try
21. {
String sql = "select *FROM calculo WHERE codigoCalculo ='"+txNumero.getText()+"'";
conex.Conecta();
MeuState = Conexao.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
resultSet = MeuState.executeQuery(sql);
String calculo="";
try
{
resultSet.next();
mostrar_dados();
calculo = "Deletar o Calculo "+resultSet.getString("codigoCalculo");
}
catch (SQLException erro)
{
JOptionPane.showMessageDialog(null,"Calculo não Cadastrado");
return;
}
int c = JOptionPane.showConfirmDialog(null,calculo,"",JOptionPane.YES_NO_OPTION);
if(c==JOptionPane.YES_OPTION)
{
sql="DELETE FROM calculo WHERE CodigoCalculo='"+txNumero.getText()+"'";
int r = MeuState.executeUpdate(sql);
if(r==1)
JOptionPane.showMessageDialog(null,"Exclusao realizada com sucesso!");
else
JOptionPane.showMessageDialog(null, "Não foi possivel excluir o calculo!");
}
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,"Calculo não cadastrado!");
}
}
conex.fecha();
}
//-----------------------------------Fim do Excluir---------------------------------------------------
if (e.getSource()==btExcluir) Se o usuário pressionar o botão Excluir,
ocorrem os seguintes procedimentos descritos nas linhas abaixo.
Contém a declaração do comando SQL que faz uma procura, através da
string chamada sql , para verificar se o aluno a ser excluído realmente
existe. O conteúdo presente na caixa de texto referente ao codigo
(txNumero) será usado no comando SQL para localizar o aluno a ser
excluído.
22. Estão no bloco try-catch. Se o aluno não for encontrado, será dado uma
mensagem de Aluno não cadastrado.
conex.Conecta(); Esta linha chama a conexão com o banco de dados,
através do método Conecta() criado na classe Conexão.
MeuState = Conexao.con.createStatement(); cria um statement, isto é,
um objeto chamado MeuState que possibilita a utilização de um comando
SQL na conexão realizada com o banco de dados chamada “con”. Pode-se
dizer que a interface Statement permite executar um comando SQL que
será usado no programa.
resultSet = MeuState.executeQuery(sql); O método executeQuery faz
uma consulta à procura do(s) campo(s) solicitado(s) e o resultado desta
ação é armazenado no objeto resultSet. O comando SQL inserido no
método executeQuery significa: Selecione (SELECT) todos os campos da
tabela calculo (FROM TBCalculo) em que (WHERE) o numero do aluno seja
aquela digitada na caixa de texto da matrícula (txNumero.getText()). O
resultado do comando SQL será armazenado no objeto resultSet com o
formato de uma tabela contendo linhas e colunas (registros) relativos à
tabela em que a consulta é realizada, neste caso, da tabela TBCalculo. Se o
numero não for encontrado, será enviado uma mensagem - "Calculo não
cadastrado!" e a ação de exclusão será cancelada.
Linha 9 - String nom= ""; Cria a variável nom do tipo String e vazia.
Esta variável guarda o numero do orcamento que será excluído e será
usada na mensagem de confirmação, perguntando ao usuário se deseja
excluir o aluno selecionado para a exclusão.
resultSet.next(); O objeto resultSet avança o próximo registro.
calculo ="Deletar o orcamento " +
resultSet.getString("codigoCalculo"); O método getString é
responsável por recuperar um dado do tipo String armazenado na tabela.
Neste caso, o método captura o numero do orcamento do registro a ser
excluído. A variável calculo recebe a frase “Deletar o calculo” + numero do
calculo capturado pelo método getString.
int n= JOptionPane.showConfirmDialog(null,nom,"",
JOptionPane.YES_NO_OPTION); Mostra uma mensagem de
confirmação na tela como mostra a figura abaixo:
23. Lembrando que a variável calculo guarda o conteúdo: “Deletar o calculo” +
o numero do calculo capturado pelo método getString e a mensagem
construída pelo JoptionPane cria dois botões: Yes e No.
if (n==JOptionPane.YES_OPTION) { sql="DELETE FROM TBOrcamento
Where codigoCalculo='"+txNumero.getText()+"'"; é feito a verificação
de qual botão foi selecionado na mensagem. Se for o botão “Yes”, será
criado o comando SQL para excluir o calculo, no seguinte formato: DELETE
FROM nome da tabela WHERE condição. Antes de excluir é necessário
localizá-lo, o que é feito pela cláusula WHERE seguida da condição. Neste
caso, é selecionado o registro cuja numero do calculo seja igual ao numero
digitado no txNumero, capturado através do método getText.
int r = MeuState.executeUpdate(sql); execução do comando para
exclusão do registro. Da mesma forma que na inserção e na atualização,
para excluir um registro também é usado o método executeUpdate que
permite executar comandos de ação.
if (r==1) Nesta linha foi usada uma variável “r” para verificar o sucesso
ou não do comando de exclusão. Se o resultado da ação retornar a 1, ou
seja, se r receber 1, significa que o comando SQL foi executado com
sucesso, caso contrário, significa que não obteve sucesso na exclusão dos
dados.
JOptionPane.showMessageDialog(null,"Exclusão realizada com
sucesso!"); Será apresentada na tela uma mensagem informando que a
exclusão foi realizada com sucesso..
JOptionPane.showMessageDialog(null,"Não foi possível excluir o
aluno!"); Será apresentada na tela uma mensagem informando que
não foi possível excluir o aluno!
conex.Fecha(); Fecha a conexão com o banco de dados.
Aula 7- Rotina de Localização de Registros
Vamos estudar a codificação da rotina para localizar um registro gravado
na nossa tabela de alunos (TBOrcamento) criada no MySql, através do
campo chave (codigoCalculo):
//-----------------------------------Inicio do Localizar------------------------------------------
private void btLocalizarActionPerformed(java.awt.event.ActionEvent evt) {
txNumero.setEditable(true);
if (evt.getSource()==btLocalizar)
{
try
{
String sql = "select *from calculo where codigoCalculo='"+txNumero.getText()+"'";
conex.Conecta();
24. MeuState = conex.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
resultSet = MeuState.executeQuery(sql);
resultSet.next();
mostrar_dados();
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null, "Calculo não Cadastrado");
return;
}
conex.fecha();
}
}
//-----------------------------------Fim do Localizar------------------------------------------
if (e.getSource()==btLocalizar) ) Se o usuário pressionar o botão
Localizar, ocorrem os seguintes procedimentos descritos nas linhas abaixo:
String sql= "SELECT * FROM TBCalculo Where codigoCalculo='
"+txNumero.getText()+" ' "; Nesta linha é definido o comando SQL
responsável pela localização do registro. SELECT (selecione) FROM
TBCalculo (da tabela calculo) WHERE (onde) codigoCalculo =
txNumero.getText (o codigo seja igual ao valor digitado no campo
txNumero, capturado pelo método getText). Observe que esta linha de
comando está inserida no bloco try-catch. Se o aluno não for encontrado,
será mostrada uma mensagem na tela informando que o aluno não foi
encontrado.
conex.Conecta(); Esta linha chama a conexão com o banco de dados,
através do método Conecta() criado na classe Conexão.
MeuState = Conex.con.createStatement(); cria um statement, isto é,
um objeto chamado MeuState que possibilita a utilização de um comando
SQL na conexão realizada com o banco de dados chamada “con”. Pode-se
dizer que a interface Statement permite executar um comando SQL que
será usado no programa.
resultSet = MeuState.executeQuery(sql); o método executeUpdate é
usado para executar comandos SQL de ação na linguagem Java.
resultSet.next(); O objeto resultSet avança o próximo registro.
25. ATIVIDADE
1- Crie uma tabela no Mysql WorkBench, conforme mostra a figura abaixo:
2- Crie uma classe para fazer a conexão com o banco de dado.
3- Crie uma classe contendo o formulário de cadastro de professores, incluindo nele as
rotinas de Inclusão de registros, Alteração, Exclusão, Localização e um botão para
limpar os campos.