11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o...

12
Apostila Java Básico Aula 11 JDBC www.cotiinformatica.com.br 1 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 Integer idFuncionario; private String nome; private String sexo; private Boolean ativo; private Double 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) {

Transcript of 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o...

Page 1: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 1

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 Integer idFuncionario;

private String nome;

private String sexo;

private Boolean ativo;

private Double 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) {

Page 2: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 2

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 “dadosmysql-connector-java”, clicar com o botão direito no projeto, depois em Properties.

Page 3: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 3

Clicar em Java Build Path e Add External JARs.

Indicar o caminho onde se encontra a biblioteca do mysql.

Page 4: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 4

Depois de adicionar a lib, clicar em Apply e depois OK.

Indicando a lib no projeto.

Page 5: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 5

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: Explicação: drop database if exists

aula11; Apagar o banco se já existir com o nome de aula11.

create database aula11; Criar um banco com o nome de aula11. use aula11; Usar o banco aula11.

drop database if exists aula11;

create database aula11;

use aula2;

Comandos: Explicação: create table Criar a tabela com nome de funcionário. primary key Significa que o campo será a chave

primária. varchar Siginifica que o campo é uma palavra com

35 caracteres. not null O campo não poderá ser nulo, vazio. enum Significa que o campo só tem duas opções

“m” ou “f”. double Significa que o campo é do tipo Double,

valor. int 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:

Page 6: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 6

desc Comando para dar a descrição da tabela. insert into “nome da

tabela” values Insere na tabela “funcionário” os valores

(...) select * from “nome da

tabela” Comando que seleciona todos os campos

da tabela funcionário. select Seleciona * Todos from “tabela” 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...

Page 7: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 7

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 java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import 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.

Page 8: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 8

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;

Page 9: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 9

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();

}

Page 10: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 10

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;

Page 11: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 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!

Page 12: 11 - blogedsonbelem.com.brblogedsonbelem.com.br/blog/java/aula11_javabasico.pdf · JDBC 5 Criando o banco de dados: Para criar o script do banco de dados, criar um pacote chamado

Apostila Java Básico

Aula

11

JDBC

www.cotiinformatica.com.br 12

No banco...