Criar um projeto ->. 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) { 1
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. 2
Clicar em Java Build Path e Add External JARs. Indicar o caminho onde se encontra a biblioteca do mysql. 3
Depois de adicionar a lib, clicar em Apply e depois OK. Indicando a lib no projeto. 4
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 aula; create database aula; use aula; Explicação: Apagar o banco se já existir com o nome de aula. Criar um banco com o nome de aula. Usar o banco aula. drop database if exists aula; create database aula; 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: 5
desc Comando para dar a descrição da tabela. insert into nome da Insere na tabela funcionário os valores tabela values (...) select * from nome da Comando que seleciona todos os campos tabela 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... 6
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. 7
getconnection("jdbc:mysql://localhost:3306/aula","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; 8
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(); 9
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; 10
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!
No banco... 12