Abra o PDF - Blog Edson Belém

Propaganda
Apostila Java Básico
JDBC
Aula
11
Criar um projeto -> Aula11.
Criar no pacote entity a classe Funcionario com os atributos(idFuncionario,
nome, sexo, ativo, salario). Criar construtor vazio, o construtor cheio, o
toString com todos os atributos e os getters e setters.
package entity;
public class Funcionario {
private
private
private
private
private
Integer
String
String
Boolean
Double
idFuncionario;
nome;
sexo;
ativo;
salario;
public Funcionario() {
}
public Funcionario(Integer idFuncionario, String nome,
String sexo, Boolean ativo, Double salario) {
super();
this.idFuncionario = idFuncionario;
this.nome = nome;
this.sexo = sexo;
this.ativo = ativo;
this.salario = salario;
}
@Override
public String toString() {
return "Funcionario [idFuncionario=" + idFuncionario +
", nome=" + nome + ", sexo=" + sexo + ", ativo=" + ativo + ",
salario=" + salario + "]";
}
public Integer getIdFuncionario() {
return idFuncionario;
}
public void setIdFuncionario(Integer idFuncionario) {
this.idFuncionario = idFuncionario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
www.cotiinformatica.com.br
1
Apostila Java Básico
JDBC
Aula
11
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
this.ativo = ativo;
}
public Double getSalario() {
return salario;
}
public void setSalario(Double salario) {
this.salario = salario;
}
}
Para adicionar a biblioteca de conexão com o banco de “dadosmysqlconnector-java”, clicar com o botão direito no projeto, depois em Properties.
www.cotiinformatica.com.br
2
Apostila Java Básico
JDBC
Aula
11
Clicar em Java Build Path e Add External JARs.
Indicar o caminho onde se encontra a biblioteca do mysql.
www.cotiinformatica.com.br
3
Apostila Java Básico
JDBC
Aula
11
Depois de adicionar a lib, clicar em Apply e depois OK.
Indicando a lib no projeto.
www.cotiinformatica.com.br
4
Apostila Java Básico
JDBC
Aula
11
Criando o banco de dados:
Para criar o script do banco de dados, criar um pacote chamado persistence.
Depois clicar no pacote, new e Other. Depois SQL Development, SQL File e
Next. Em File name, colocar o nome do script e clicar em Next. Depois de
criado o arquivo com o SQL do banco. Digitar os comando para criação do
banco.
Comandos:
drop database if exists
aula11;
create database aula11;
use aula11;
Explicação:
Apagar o banco se já existir com o nome
de aula11.
Criar um banco com o nome de aula11.
Usar o banco aula11.
drop database if exists aula11;
create database aula11;
use aula2;
Comandos:
create table
primary key
varchar
not null
enum
double
int
Explicação:
Criar a tabela com nome de funcionário.
Significa que o campo será a chave
primária.
Siginifica que o campo é uma palavra com
35 caracteres.
O campo não poderá ser nulo, vazio.
Significa que o campo só tem duas opções
“m” ou “f”.
Significa que o campo é do tipo Double,
valor.
Significa que o campo é do tipo inteiro.
create table funcionario(idFuncionario int primary key,
nome varchar (35) not null,
sexo enum ('m','f') not null,
salario double,
ativo int);
Comandos:
Explicação:
www.cotiinformatica.com.br
5
Apostila Java Básico
JDBC
desc
insert into “nome da
tabela” values
select * from “nome da
tabela”
select
*
from “tabela”
Aula
11
Comando para dar a descrição da tabela.
Insere na tabela “funcionário” os valores
(...)
Comando que seleciona todos os campos
da tabela funcionário.
Seleciona
Todos
Se refere a tabela desejada.
desc funcionario;
insert into funcionario values (100,'jose','m',1000,0);
insert into funcionario values (101,'stuart','m',1800,1);
insert into funcionario values (102,'carla','f',7800,1);
select * from funcionario;
No banco...
www.cotiinformatica.com.br
6
Apostila Java Básico
JDBC
Aula
11
Criar um pacote chamado persistence e nele criar uma classe chamada Dao.
Essa classe é destinada para conexão ao banco de dados. DAO significa Data
Access Object.
package persistence;
import
import
import
import
import
java.sql.CallableStatement;
java.sql.Connection;
java.sql.DriverManager;
java.sql.PreparedStatement;
java.sql.ResultSet;
public class Dao {
Connection con;
PreparedStatement stmt;
ResultSet rs;
CallableStatement call;
public void open() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.
www.cotiinformatica.com.br
7
Apostila Java Básico
JDBC
Aula
11
getConnection("jdbc:mysql://localhost:3306/aula11","root","coti"
);
}
public void close() throws Exception{
con.close();
}
Criar o método main para testar se a classe está se conectando ao banco.
Dentro do bloco try e catch chamar a classe e criar o seu objeto e dar
espaço de memória. Através do objeto abrir e depois fechar. Imprimir a
mensagem se conseguiu conectar. Se não conseguir, vai para o catch e
imprime a mesnagemd de erro.
public static void main(String[] args) {
try {
Dao d = new Dao();
d.open();
d.close();
System.out.println("Banco de Dados OK!");
} catch (Exception e) {
System.out.println("ERROR: " + e.getMessage());
}
}
}
No console...
Banco de Dados OK!
Criar a classe FuncionarioDao para manipular o funcionário dentro do banco.
package persistence;
import java.util.ArrayList;
import java.util.List;
import entity.Funcionario;
www.cotiinformatica.com.br
8
Apostila Java Básico
JDBC
Aula
11
public class FuncionarioDao extends Dao {
Criamos o método de criação do funcionário, passamos a classe Funcionario
e objeto como parâmetros. Chamamos o método para abrir o banco.
Chamamos a conexão com a tabela, depois a conexão com o banco através
do método de acesso a tabela passando os parâmetros SQL de inserção dos
dados do funcionário, onde as interrogações serão os dados a serem
passados.
public void create(Funcionario f)throws Exception{
open();
stmt = con.
prepareStatement("insert into funcionario values
(?,?,?,?,?)");
Em seguida passamos a conexão com a tabela e setamos o tipo do dados
que será recebido, nos parâmetros indicamos a posição da coluna e o objeto
de funcionário com o método get referente ao campo que será inserido.
Assim será feito para todos os dados.
stmt.setInt(1,f.getIdFuncionario());
stmt.setString(2,f.getNome());
stmt.setString(3,f.getSexo());
stmt.setDouble(4,f.getSalario());
No parâmetro referente se o funcionário está ativo, colocamos que ele
receberá 1 ou 0, será ativo ou não.
Fazemos a conexão com a tabela novamente, através do método execute,
executamos as ações de cima. Ainda usando a conexão, fechamos a tabela e
por fim, fechamos o banco.
stmt.setInt(5, (f.getAtivo())?1:0);
stmt.execute();
stmt.close();
close();
}
www.cotiinformatica.com.br
9
Apostila Java Básico
JDBC
Aula
11
Criamos o método para buscar todos os funcionários cadastrados de uma
vez através de uma lista. Abrimos o banco. Conectamos com a tabela e
passamos o parâmetro de busca SQL de todos os registros do banco.
Através do rs fazemos a consulta no banco, conectamos com a tabela e
executamos a pesquisa.
public List<Funcionario> findAll() throws Exception{
open();
stmt = con.prepareStatement("select * from funcionario");
rs = stmt.executeQuery();
Criamos a lista de funcionário través da interface List, criamos o objeto lista
e damos espaço de memória para trabalhar. Em seguida, enquanto houver
registros preenchemos com os dados do funcionário. Para isso, chamamos a
classe e criamos um objeto e damos espaço de memória.
List<Funcionario> lista = new ArrayList<Funcionario>();
while(rs.next()){
Funcionario f = new Funcionario();
Depois, pelo objeto de funcionário setamos o campo e através da consulta,
pelo rs, indicamos o tipo de campo da referencia, seja passando a posição
da coluna onde está o dado esperado ou passando o nome da coluna.
Passamos campo a campo os dados a serem trazidos do banco. No fim, após
passar todos os campos, chamamos o objeto lista e o método para
adicionar, tendo como parâmetro o objeto de funcionário. Fechamos o banco
e retornamos a lista já preenchida com as informações.
f.setIdFuncionario( rs.getInt(1));
f.setNome( rs.getString(2));
f.setSexo( rs.getString("sexo"));
f.setSalario(rs.getDouble(4));
f.setAtivo(( rs.getInt(5) ==1 )?true:false);
lista.add(f);
}
close();
return lista;
www.cotiinformatica.com.br
10
Apostila Java Básico
JDBC
Aula
11
}
No método de teste main, abrimos o bloco try e catch e detro do try
chamamos a inteface da lista com a classe Funcionário como parâmetro e
criamos um objeto chamado resp. Chamamos a classe FuncionarioDao e o
método de busca findAll.
No loop do for, passamos a classe Funcionario e o objeto f para preencher o
objeto resp. Ou seja, vai fazer a busca no banco e enquanto houver
registros, em seguida imprime o objeto cheio com os resultados. Imprime
também a mensagem.
Se cair no catch, der erro, imprime a mensagem de erro e com o método
printSackTrace exibe o erro mais detalhadamente.
public static void main(String[] args) {
try {
List <Funcionario> resp = new FuncionarioDao().findAll();
for (Funcionario f : resp){
System.out.println(f);
}
System.out.println("Funcionario listado com sucesso!");
} catch (Exception e) {
System.out.println("ERROR: " + e.getMessage());
e.printStackTrace();
}
}
}
No console..
Funcionario [idFuncionario=100, nome=jose, sexo=m, ativo=false,
salario=1000.0]
Funcionario [idFuncionario=101, nome=stuart, sexo=m, ativo=true,
salario=1800.0]
Funcionario [idFuncionario=102, nome=carla, sexo=f, ativo=true,
salario=7800.0]
Funcionario listado com sucesso!
www.cotiinformatica.com.br
11
Apostila Java Básico
JDBC
Aula
11
No banco...
www.cotiinformatica.com.br
12
Download