Você está na página 1de 48

Aula Java

Conexo com o Banco de


dados

Criando o Banco de dados


acesse o MySQL Command Line Client :
iniciar->porgramas->MySQL->MySQL Server 5.x> MySQL Command Line Client).
entre com a senha (aquela que voc colocou
quando fez a instalao). Se voc no alterou
as configuraes, a senha padro em branco
para o usurio root.
Se tudo estiver ok, voc ver a janela com
aparncia da figura abaixo.

criar o banco cujo o nome ser estacionamento


tecle enter ao final.
create database estacionamento;

Indicar ao MySQL que voc deseja usar esse banco


que acaba de criar
use estacionamento;

criao da tabela
Para isso digite os comandos a
seguir, linha a linha e tecle enter a
cada linha. S coloque o ponto-evrgula na ltima linha, pois este
(ponto-e-vrgula) diz para o MySQL
que o comando terminou.

A mensagem 0 rows affected, significa que a tabela


est vazia.

Criao do projeto
Crie um novo projeto no NetBeans
selecione Java em categorias e
aplicativo Java em projetos e click
em prximo.

Na nova janela, coloque o nome


estacionamento em nome do
projeto; click em procurar e aponte
para o diretrio que se deseja criar o
projeto. Crie uma pasta
ESTACIONAR, diretamente no
diretrio raiz C:. Marque o ltimos
checkbox.

Adio do conector
Click com o boto direito do mouse
sobre a pasta Bibliotecas e
selecione a opo Adcionar
JAR/pasta. Esta em C:\myaqlconector.
Selecione o conector e click em
caminho relativo, assim o
netbeans no ficar preso pasta
que se encontra o conector.

J possuimos:
o pacote de codigo fonte e o
conector de banco de dados

Criando as classes JAVA para


manter o banco.
Precisaremos de 4 classes:
CarroBean (onde colocaremos todos os
atributos e os mtodos de acesso a
esses atributos);
CarroDAO (onde colocaremos todos os
mtodos de acesso aos dados);
Conexao (responsvel por abrir e
fechar as conexes);
Teste (para testarmos as nossas
classes).

Criao da classe Conexao.


Para isso, click com o boto direito
sobre o pacote ESTACIONAMENTO
NOVOCLASSE JAVA.

Na janela coloque o nome


Conexao e click em finalizar.

Classe Conexao - mtodo


(abrirConexao)
package estacionamento;
import java.sql.*;
public class conexao {
public static Connection abrirConexao() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance(); //drive para o carregar o BD mysql
String url = "";
url += "jdbc:mysql://127.0.0.1/estacionamento?";
url += "user=root&password=";
con = DriverManager.getConnection(url);
System.out.println("Conexo aberta.");
}//try
catch (SQLException e) {
System.out.println(e.getMessage());
}
catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return con;
}//static AbrirConexao
}

Classe Conexao - mtodo


(fecharConexao)
public static void fecharConexao(Connection con) {
try {
con.close();
System.out.println("Conexo fechada.");
}//try
catch (SQLException e) {
System.out.println(e.getMessage()); }
catch (Exception e) {
System.out.println(e.getMessage()); }
}//metodo FecharConexao

Criao da classe
CarroBean.
Para isso, click com o boto direito
sobre o pacote ESTACIONAMENTO
NOVOCLASSE JAVA.

Na janela coloque o nome


CarroBean e click em finalizar.

Classe CarroBean Dica no prox.


Slide
package estacionamento;
public class CarroBean
{ private String placa;
private String cor;
private String descricao;
public String getCor() {//devolver o valor atual do atributo
return cor;
}
public void setCor(String cor) {//setar valor para o atributo
this.cor = cor;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
}

Dica: Criar gets e sets no


netbeans
pressione alt+insert e aparecer a
figura abaixo.
Selecione Getter e setter e
pressione enter. Quando aparecer a
janela Gerar getters e setters,
selecione os atributos conforme
figura abaixo e click em gerar.
Pronto!

Criao da classe CarroDao.


Para isso, click com o boto direito
sobre o pacote ESTACIONAMENTO
NOVOCLASSE JAVA.

Na janela coloque o nome


CarroDao e click em finalizar.

classe CarroDAO
inserir, alterar, pesquisar e excluir dados da tabela
package estacionamento;
import java.sql.*;
import java.util.*;
public class CarroDAO {
private Connection con;
public CarroDAO(Connection con){
setCon(con);
}
public Connection getCon() {
return con;
}
public void setCon(Connection con){
this.con = con;
}
.....//local dos demais metodos
}//fim da Classe CarroDao

Metodo Insere
Recebe um objeto CarroBen como parmetro e
faz a gravao desses dados na tabela carro.
public String inserir(CarroBean carro) {
String sql = "insert into carro(placa,cor,descricao)values(?,?,?)";
try {
PreparedStatement ps = getCon().prepareStatement(sql);
ps.setString(1, carro.getPlaca());
ps.setString(2, carro.getCor());
ps.setString(3, carro.getDescricao());
if (ps.executeUpdate() > 0)
{
return "Inserido com sucesso."; }
else
{
return "Erro ao inserir"; }
}//try
catch (SQLException e) {
return e.getMessage(); }
}//metodo Inserir

Metodo Altera
Recebe um objeto CarroBen como parmetro e
faz a alterao dos dados na tabela carro.
public String alterar(CarroBean carro){
String sql = "update carro set cor = ?,descricao = ?";
sql += " where placa = ?";
try {
PreparedStatement ps = getCon().prepareStatement(sql);
ps.setString(1, carro.getCor());
ps.setString(2, carro.getDescricao());
ps.setString(3, carro.getPlaca());
if (ps.executeUpdate() > 0)
{
return "Alterado com sucesso."; }
else
{
return "Erro ao alterar"; }
}//try
catch (SQLException e) {
return e.getMessage();
}
}//metodo Altera

Metodo Excluir
Recebe um objeto CarroBen como parmetro e
faz a excluso dos dados na tabela carro
public String excluir(CarroBean carro){
String sql = "delete from carro where placa= ?";
try {
PreparedStatement ps =
getCon().prepareStatement(sql);
ps.setString(1, carro.getPlaca());
if (ps.executeUpdate() > 0)
{
return "Excludo com sucesso."; }
else
{
return "Erro ao excluir"; }
}//try
catch (SQLException e)
{
return e.getMessage(); }
}//metodo Excluir

Metodo Listar Lista todos os registros da tabela carro


public List<CarroBean> listarTodos() {
String sql = "select * from carro ";
List<CarroBean> listaCarro = new ArrayList<CarroBean>();
try {
PreparedStatement ps = getCon().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs != null)
{
while (rs.next()) {
CarroBean cb = new CarroBean();
cb.setPlaca(rs.getString(1));
cb.setCor(rs.getString(2));
cb.setDescricao(rs.getString(3));
listaCarro.add(cb);
}//while
return listaCarro;
}
else
{
return null;}
}//try
catch (SQLException e) {
return null;
}
}//metodo Listar

Criao da classe Teste.


Para isso, click com o boto direito
sobre o pacote ESTACIONAMENTO
NOVOCLASSE JAVA.

Na janela coloque o nome Teste e


click em finalizar.

Classe Teste - Conexo


package estacionamento;
import java.sql.*;
import java.util.*;
public class Teste {
public static void main(String[] args) {
Connection con = conexao.abrirConexao();
} //main
}//classe Teste
Aps inserir o codigo tecle Shift + F6 caso aparecer :
Se voc ver a mensagem Conexo aberta
Passe para o prximo Slide.
Caso contrario revise seu codigo
Obs.: a diferena entre maisculas e minsculas.

Teste - Inserir

Criando os objetos necessrios para a manuteno


da tabela:
CarroBean cb = new CarroBean();
CarroDAO cd = new CarroDAO(con);
Testando o mtodo inserir: faa a seguinte operao.
cb.setPlaca("JKK1900");
cb.setCor("Azul");
cb.setDescricao("Carro 1");
System.out.println(cd.inserir(cb));
Verifique no seu banco de dados se o registro foi
inserido
No mysql digite:
Select * from carro;

//******TESTE DO METODO
INSERIR*******

cb.setPlaca("JKK1900");
cb.setCor("Azul");
cb.setDescricao("Carro 1");
System.out.println(cd.inserir(cb));

//******TESTE DO METODO
INSERIR*******

Teste - Alterar
//******TESTE DO METODO ALTERAR*******
cb.setPlaca("JKL2897");
cb.setCor("Amarelo");
cb.setDescricao("Carro 3");
System.out.println(cd.alterar(cb));

//******TESTE DO METODO ALTERAR*******

Faa a consulta novamente.

Teste - EXCLUIR
cb.setPlaca("JKL2897");
System.out.println(cd.excluir(cb));

Teste - LISTAR

List<CarroBean> lista = cd.listarTodos();


if(lista != null){
for(CarroBean carro : lista){
System.out.println("Placa: "+carro.getPlaca());
System.out.println("Cor: "+carro.getCor());
System.out.println("Descrio:
"+carro.getDescricao());
}
}

Criando a Interface do
Sistemas estacionamento

Interface do Sistema
Crie um formulrio dentro do pacote
estacionamento: Boto direito
sobre o pacote novo->formulrio
Jframe.

Vamos inserir um panel e um label para titulo da aplicao.


Outro panel e 4 label e 4 campo de texto:
Os label, campo de texto, botes devem cliacar em cada
componente com o boto direito alterar os nomes das
variavel lblNOMEDOCAMPO para label, txtNOMEDOCAMPO para
compo de texto e btnNOMEDOCAMPO.
No campo tabela boto direito do mouse sobre a tabela e
selecione Contedo da tabela,
Marcada Especificado pelo usurio e selecione a aba
Colunas.
Exclua a ltima linha renomeie as demais e desmarque as
todas opes
Na aba linhas exclua todas as linhas fechar
Mude o nome da planilha para tblConsulta.

Criando as funcionalidades
Clique com o boto direito no
componente FECHAR
eventosmouse mousecliked.
private void
btnFecharMouseClicked(java.awt.e
vent.MouseEvent evt) {
System.exit(0);
}

Criando as funcionalidades
Clique com o boto direito no componente LIMPAR eventosmouse mousecliked.
Na seo de importao, coloque o seguinte import :

import javax.swing.table.*;
private void btnlimparMouseClicked(java.awt.event.MouseEvent
evt) {
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
DefaultTableModel tbm
=(DefaultTableModel)jTable2.getModel();
for(int i = tbm.getRowCount()-1; i >= 0; i--){
tbm.removeRow(i);
}

Criando as funcionalidades
Clique com o boto direito no componente INSERIR eventosmouse
mousecliked.
Na seo de importao, coloque o seguinte import :
import java.sql.*;
private void btnincluirMouseClicked(java.awt.event.MouseEvent
evt) {
Connection con = conexao.abrirConexao();
CarroBean cb = new CarroBean();
CarroDAO cd = new CarroDAO(con);
cb.setPlaca(txtplaca.getText());
cb.setCor(txtcor.getText());
cb.setDescricao(txtdescricao.getText());
lblmensagem.setText(cd.inserir(cb));
conexao.fecharConexao(con); }

Criando as funcionalidades
Clique com o boto direito no componente PESQUISAR eventosmouse mousecliked.
Na seo de importao, coloque o seguinte import :
java.util.*;
private void btnpesquisarMouseClicked(java.awt.event.MouseEvent evt) {
Connection con = conexao.abrirConexao();
CarroDAO cd = new CarroDAO(con);
List<CarroBean> listaCarro = new ArrayList<CarroBean>();
listaCarro = cd.listarTodos();
DefaultTableModel tbm =
(DefaultTableModel)tblconsulta.getModel();
for(int i = tbm.getRowCount()-1; i >= 0; i--){
tbm.removeRow(i);
}
int i = 0;
for(CarroBean cb : listaCarro){
tbm.addRow(new String[1]);
tblconsulta.setValueAt(cb.getPlaca(), i, 0);
tblconsulta.setValueAt(cb.getCor(), i, 1);
tblconsulta.setValueAt(cb.getDescricao(), i, 2);
i++;
}
conexao.fecharConexao(con);
// TODO add your handling code here:
}

Feita a pesquisa deve ser selecionado o registro que


deseja alterar ou excluir. Para isso precisamos capturar a
linha que ele selecionou.
Vamos criar um mtodo para o click do mouse na tabela,
o procedimento o mesmo feito para os botes.
private void tblconsultaMouseClicked(java.awt.event.MouseEvent evt) {
Integer linha = tblconsulta.getSelectedRow();
String placa = (String)tblconsulta.getValueAt(linha, 0);
String cor = (String)tblconsulta.getValueAt(linha, 1);
String descricao = (String)tblconsulta.getValueAt(linha, 2);
txtplaca.setText(placa);
txtcor.setText(cor);
txtdescricao.setText(descricao);
}

Criando as funcionalidades
Clique com o boto direito no componente ALTERAR eventosmouse
mousecliked.
Na seo de importao, coloque o seguinte import :
import java.sql.*;
private void btnalterarMouseClicked(java.awt.event.MouseEvent evt)
{
Connection con = conexao.abrirConexao();
CarroBean cb = new CarroBean();
CarroDAO cd = new CarroDAO(con);
cb.setplaca(txtplaca.getText());
cb.setcor(txtcor.getText();
cb.setDescricao(txtdescricao.getText());
lblmensagem.setText(cd.alterar(cb));
conexao.fecharConexao(con);
}

Criando as funcionalidades
Clique com o boto direito no componente EXCLUIR eventosmouse mousecliked.
Precisamos importar JOptionPanena seo de import.
import javax.swing.JOptionPane;
private void btnexcluirMouseClicked(java.awt.event.MouseEvent evt) {
Connection con = conexao.abrirConexao();
CarroBean cb = new CarroBean();
CarroDAO cd = new CarroDAO(con);
cb.setPlaca(txtPlaca.getText());
Object[] opcoes = { "Sim", "No" };
int i = JOptionPane.showOptionDialog(null,"Deseja excluir esse veculo:"+txtplaca.getText()+"?", "Excluso",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null,
opcoes, opcoes[0]);

if (i == JOptionPane.YES_OPTION) {
lblmensagem.setText(cd.excluir(cb));
}
conexao.fecharConexao(con);
}

Insira o nome do
SCHEMA criado

Show t

create database familia;


use familia;
create table progenitor(pkpro int auto_increment not
null primary key, nomepro varchar(50) not
null)engine=innodb;
create table filho(pkfi int auto_increment not null
primary key, nomefi varchar (50) not null, fkpro int,
foreign key(fkpro) references progenitor (pkpro) on
delete cascade on update cascade)engine = innodb;

Visualizao do banco e
tabelas

Criando um Banco de Dados pelo


Netbeans
Na guia Servios Servidor MySQL em
localhost:3306e, clique com o direito e selecione
Criar Banco de Dados.

A caixa janela Criar Banco de Dados MySQL


marque:
Nome do Banco de Dados.
Ative a caixa de seleo Conceder acesso total ao
root@::1 Ok

No campo Driver selecione(Driver


Conector/J).
Clique em Prximo.

No campo Banco de Dados, digitenome do


BD.
Nos campos Nome do Usurio e Senha root e
123456 Marque Lembrar Senha.
Clique em Testar Conexo e se a conexo for
bem-sucedida.
Clique em Finalizar.

Em servio na item do BD criado


tabelas clique com o boto direito Criar
Tabela.