Você está na página 1de 35

com Java e MySQL

Prof. Jorge Viana Doria Junior, M.Sc.


Mestre em Informática DCC/IM/iNCE/UFRJ
jjunior@unicarioca.edu.br
Tecnologias envolvidas:
Java, JDBC, MySQL e NetBeans

• Nesta aula você vai aprender de maneira muito simples


e objetiva a criação uma aplicação CRUD JAVA (Create,
Read, Update e Delete) no NetBeans para atender
tarefas simples e rápidas.

• Aprenderemos a inserir, atualizar, excluir e listar dados


de um formulário em banco de dados MySQL com a
classe Statement em uma tabela chamada aluno.
• O MySQL é um sistema gerenciador de banco de dados (SGBD),
que utiliza a linguagem SQL (Linguagem de Consulta Estruturada,
do inglês Structured Query Language) como interface. É
atualmente um dos bancos de dados mais populares, com mais
de 10 milhões de instalações pelo mundo.

• Entre os usuários do banco de dados MySQL estão: NASA,


Friendster, Banco Bradesco, DATAPREV, HP, Nokia, Sony,
Lufthansa, Petrobras, U.S. Army, U.S. Federal Reserve
Bank, Associated Press, Alcatel Slashdot, Cisco Systems,
Google e outros...
ATENÇÃO
• Siga os passos determinados.
• Brinque e aprenderá.
• Tente fazer o que é solicitado.
• Muita atenção aos comentários.
• É importante e faça para ver o que acontece.
• Irá descobrir algumas coisas por si só.
• Considere isto um DESAFIO.
• Perceba e já estará aprendendo muito.
• Pode ter certeza! Você pode aprender muito mais do que pensa!
Passo 1: Instalação do Banco de
Dados MySQL
• Antes de mais nada, é necessário fazer a instalação do
MySQL em sua máquina.

• Portanto, leia o PDF MySQL – Manual de


Instalação.pdf disponível no AVA.
Passo 2: Instalação da IDE
NetBeans
• Para instalar o NetBeans, faça o donwload no site
abaixo e execute o instalador. Lembre-se, você deverá
ter instalado o Java 7:
• https://netbeans.org/downloads/index.html
Passo 3: Criação de um Banco de Dados e Tabela
Aluno

• Execute o NetBeans.
• Registre o servidor
MySQL. Isto só poderá
ocorrer quando o MySQL
estiver instalado. Basta
clicar com o botão direto
do mouse em Banco de
dados conforme a
imagem:
Passo 3: Criação de um Banco de Dados e Tabela
Aluno

• Configure as propriedades do
servidor MySQL, aceitando
algumas como padrão
oferecidos na
guia Propriedades
Básicas.

• Coloque a senha do root


definida na instalação do
MySQL. No laboratório da
Unicarioca deve ser
opcional, vamos testar?
Passo 3: Criação de um Banco de Dados e Tabela
Aluno

• Conecte ao servidor
MySQL com o botão direito
do mouse e, logo após, no
mesmo menu, crie um
banco de dados
chamado Escola.
Passo 3: Criação de um Banco de Dados e Tabela
Aluno

• Para criar o banco de dados, você deverá definir o


nome e conceder acesso. Você pode fazê-lo conforme
proposto na imagem que segue:
Passo 3: Criação de um Banco de Dados e Tabela
Aluno

• Conecte com o banco de dados clicando com o botão


direito do mouse sobre Escola. Isto permitirá a criação
da conexão para ele e posterior uso em aplicações no
NetBeans.
Passo 3: Criação de um Banco de Dados e Tabela
Aluno

• A criação da conexão para o BD (Banco de


Dados) Escola pode ser vista abaixo circundada em
azul. Conecte a ele para que se possa criar tabelas.
Passo 3: Criação de um Banco de Dados e Tabela
Aluno
• A partir daí, é possível criar tabelas para o banco de
dados, e no caso, criaremos a tabela Aluno para efeito
de aprendizado.
• Com o botão direito do mouse sobre
• Escola -> Tabelas, acesse Executar Comando… para que
apareça um editor Comando SQL em branco.
• Digite no editor (Você pode usar Ctrl-C Ctrl-V),
o script decreate
criação da tabela Aluno, mostrado abaixo, e
table aluno
rode-o: (
id BIGINT not null primary key,
Nome VARCHAR(40) not null,
CPF VARCHAR(14) not null unique
)
Passo 3: Criação de um Banco de Dados e Tabela
Aluno
• Resultado final
Passo 4: Criação da Aplicação JAVA no NetBeans

• Clique no
menu Arquivo
(File) -> Novo
Projeto…
(New
Project…) seleci
on Java ->
Aplicação
Java (Java
Application) e
clique
em Próximo (Ne
xt).
Passo 4: Criação da Aplicação JAVA no NetBeans
• Em Nome do Projeto (Project Name) coloque o nome, ou
outro que
deseje, JavaApplicationMySQLComStatement e
clique em Finalizar (Finish). Resultado abaixo:
Passo 4: Criação da Aplicação JAVA no NetBeans
Passo 4: Criação da Aplicação JAVA no NetBeans

• Crie o pacote apresentacao como apontado na


imagem abaixo:
Passo 4: Criação da Aplicação JAVA no NetBeans
• Crie um JFrame chamado JFrameAluno seguindo a
imagem abaixo:
Passo 4: Criação da Aplicação JAVA no NetBeans
Passo 4: Criação da Aplicação JAVA no NetBeans
• Crie os componentes, no JFrame, como apresentado na
imagem a seguir. Esteja atento aos detalhes de quais
são estes componentes na Paleta (Pallete).
Passo 4: Criação da Aplicação JAVA no NetBeans
• Gere os eventos de cada botão com duplo clique
dobre eles ou clicando com o botão direito do mouse e
acessando Eventos (Events) -> Ação (Action) ->
actionPerformed. Veja os eventos na guia de código
fonte (Source)abaixo:
Passo 4: Criação da Aplicação JAVA no NetBeans
• Adicione o Driver JDBC MySQL (MySQL JDBC
Driver) em Bibliotecas (Libraries). Abaixo:
Passo 4: Criação da Aplicação JAVA no NetBeans

• Digite os códigos dos próximos slide para o


evento de cada botão no Jframe:

• ATENÇÃO: Renomeie os componentes (Botão


direto do mouse sobre o componente
no JFrame e Alterar Nome da Variável…
(Change Variable Name…)) do painel Inserir
Aluno conforme indicado no código abaixo:
• Exemplo:
• jTextField1 para jTextFieldId
Passo 4: Criação da Aplicação JAVA no NetBeans

• Evento do Botão Inserir


try {
//Registra JDBC driver
Class.forName("com.mysql.jdbc.Driver");

//Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS(" ") SÃO USUÁRIO E SENHA,
RESPECTIVAMENTE.
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/escola", " ", " ");

//Executa a query de inserção


java.sql.Statement st = conn.createStatement();
st.executeUpdate("INSERT INTO aluno (id, nome, cpf) VALUES ("
+ this.jTextFieldId.getText() + ",'"
+ this.jTextFieldNome.getText() + "','"
+ this.jTextFieldCPF.getText() + "')"); Devemos importar as
seguintes classes:
JOptionPane.showMessageDialog(rootPane, "Aluno inserido"); import java.sql.Connection;
import java.sql.DriverManager;
} catch (SQLException | ClassNotFoundException e) { import java.sql.SQLException;
JOptionPane.showMessageDialog(rootPane, e);
import javax.swing.JOptionPane;
}//Fim try
Passo 4: Criação da Aplicação JAVA no NetBeans
• Evento do Botão Atualizar: Esteja atendo à
necessidade de mudança das variáveis como no caso
try { acima.
//Registra JDBC driver
Class.forName("com.mysql.jdbc.Driver");

//Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS(" ") SÃO USUÁRIO E SENHA,
RESPECTIVAMENTE.
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/escola", " ", " ");

//Executa a query de atualização


java.sql.Statement st = conn.createStatement();
st.executeUpdate("UPDATE aluno SET nome='"
+ this.jTextFieldNovoNome.getText() + "',cpf='"
+ this.jTextFieldNovoCPF.getText() As classes abaixo já foram
+ "' WHERE id='" + this.jTextFieldIdExistente.getText()
importadas?+ "'");
import java.sql.Connection;
JOptionPane.showMessageDialog(rootPane, "Aluno atualizado");
import java.sql.DriverManager;
} catch (SQLException | ClassNotFoundException e) { import java.sql.SQLException;
JOptionPane.showMessageDialog(rootPane, e); import javax.swing.JOptionPane;
Passo 4: Criação da Aplicação JAVA no NetBeans
• Evento do Botão Excluir: Esteja atendo à
necessidade de mudança das variáveis como no caso
try {
acima.
//Registra JDBC driver
Class.forName("com.mysql.jdbc.Driver");

//Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS(" ") SÃO USUÁRIO E SENHA,
RESPECTIVAMENTE.
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/escola", " ", " ");

//Executa a query de exclusão


java.sql.Statement st = conn.createStatement();
st.executeUpdate("DELETE FROM Aluno WHERE id='" + this.jTextFieldIdExclusao.getText() + "'");

JOptionPane.showMessageDialog(rootPane, "Aluno excluído"); As classes abaixo já foram


importadas?
} catch (SQLException | ClassNotFoundException e) { import java.sql.Connection;
JOptionPane.showMessageDialog(rootPane, e); import java.sql.DriverManager;
}//Fim try import java.sql.SQLException;
import javax.swing.JOptionPane;
Passo 4: Criação da Aplicação JAVA no NetBeans

• Na main() da classe
principal JavaApplicationMySQLComStatement digite o
código de abertura da janela abaixo e adicione a
importação
JFrameAluno ao pacote
jFrameAluno = new apresentação e rode
JFrameAluno(); //Cria o programa
o objeto Janela
para ver o resultado. de Alunos"); //Define o título na Janela
jFrameAluno.setTitle("Cadastro
jFrameAluno.setLocationRelativeTo(null); //Coloca a janela no centro da tela
jFrameAluno.setVisible(true); //Mostra a janela
Passo 4: Criação da Aplicação JAVA no NetBeans

• Crie, agora, um novo botão chamado Listar no Frame e


digite o código abaixo em seu evento.
try {
//Registra JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS(" ") SÃO USUÁRIO E SENHA,
RESPECTIVAMENTE.
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/escola", " ", " ");
//Executa a query de seleção
java.sql.Statement st = conn.createStatement();
st.executeQuery("select * from aluno");
ResultSet rs = st.getResultSet();
//Lista os alunos no console
while (rs.next()) {
System.out.print(rs.getString("Id") + ", ");
System.out.print(rs.getString("Nome") + ", "); Devemos importar a seguinte
System.out.println(rs.getString("CPF"));
classe:
}
} catch (SQLException | ClassNotFoundException e) { import java.sql.ResultSet;
JOptionPane.showMessageDialog(rootPane, e);
}//Fim try
Passo 4: Criação da Aplicação JAVA no NetBeans
• Veja o resultado do programa com o novo
botão Listagem mostrando o resultado no console.
Passo 4: Criação da Aplicação JAVA no NetBeans

• Adicione, agora,
um componente
JTable no Frame e
digite o código a
seguir no botão
Listar Todos.
Passo 4: Criação da Aplicação JAVA no NetBeans
• Digite o código abaixo no botão Listar Todos.
try {
//Registra JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS(" ") SÃO USUÁRIO E SENHA,
RESPECTIVAMENTE.
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/escola", " ", " ");
//Executa a query de seleção
java.sql.Statement st = conn.createStatement();
st.executeQuery("select * from aluno");
ResultSet rs = st.getResultSet();
//Definir tamanho automático das colunas no modelo
jTable1.setAutoResizeMode(jTable.AUTO_RESIZE_ALL_COLUMNS);
//Criando um modelo de acordo com a definição da "JTable1"
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
//Zerar as linhas existentes do modelo
modelo.setNumRows(0);
//Lista os alunos no JTable
while (rs.next()) {
modelo.addRow(new Object[]{
rs.getString("Id"),
rs.getString("Nome"),
rs.getString("CPF")
});
}
} catch (SQLException | ClassNotFoundException e) {
JOptionPane.showMessageDialog(rootPane, e);
}//Fim try
Passo 4: Criação da Aplicação JAVA no NetBeans
• Adicione, agora, o código abaixo no botão Consultar.
try {
//Registra JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS(" ") SÃO USUÁRIO E SENHA,
RESPECTIVAMENTE.
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/escola", " ", " ");
//Executa a query de seleção utilizando parâmetro enviado pelo usuário
String query = "select * from aluno where nome like ?";
PreparedStatement cmd;
cmd = conn.prepareStatement(query);
cmd.setString(1, "%" + jTextFieldConsultaNome.getText() + "%");
ResultSet rs = cmd.executeQuery();
//Definir tamanho automático das colunas no modelo
jTable1.setAutoResizeMode(jTable.AUTO_RESIZE_ALL_COLUMNS);
//Criando um modelo de acordo com a definição da "JTable1"
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
//Zerar as linhas existentes do modelo
modelo.setNumRows(0);
//Lista os alunos no JTable
while (rs.next()) {
modelo.addRow(new Object[]{
rs.getString("Id"),
rs.getString("Nome"),
rs.getString("CPF")
});
}
} catch (SQLException | ClassNotFoundException e) {
JOptionPane.showMessageDialog(rootPane, e);
Passo 4: Criação da Aplicação JAVA no NetBeans

• Adicione, agora, o código abaixo no evento MouseClicked do componente JTable.

//Obter o número da linha seleciona


int linhaselecionada = jTable1.getSelectedRow();
//Exibir os valores das colunas da tabela nas caixas de texto
jTextFieldIdExistente.setText(jTable1.getValueAt(linhaselecionada, 0).toString());
jTextFieldNovoNome.setText(jTable1.getValueAt(linhaselecionada, 1).toString());
jTextFieldNovoCPF.setText(jTable1.getValueAt(linhaselecionada, 2).toString());
Exercício prático
• Desenvolver um CRUD para cadastrar os Médicos;
• Desenvolver um CRUD para agendar as consultas;

Pesquise no Google?
• Como tratar as exceções de chave duplicada na inclusão de
dados na tabela?
• Como tratar as exceções de registro não encontrado na tabela?

Você também pode gostar