O
padrão DAO - Data Access Object
Este padrão permite criar
as classes de dados independentemente da fonte de dados ser um BD
relacional, um arquivo texto, um arquivo XML, etc. Para isso, ele
encapsula os mecanismos de acesso a dados e cria uma interface de
cliente genérica para fazer o acesso aos dados permitindo que os
mecanismos de acesso a dados sejam alterados independentemente do
código que utiliza os dados.package br.delphos.persistencia;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DAO {
Connection con;
PreparedStatement pstm;
ResultSet rs;
public void abrirBanco() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/sistema1";
String use = "root";
String password = "08515453";
con = DriverManager.getConnection(url, use, password);
}
public void fecharBanco()throws Exception{
if(con != null)
con.close();
if(pstm != null)
pstm.close();
}
}
--------------------------------------------------------------------------------------------------------
package br.delphos.persistencia;
import br.delphos.modelo.Pessoa;
public class PessoaDAO extends DAO {
public void deletar(int x)throws Exception{
abrirBanco();
String query = "delete from pessoa where id=?";
pstm = con.prepareStatement(query);
pstm.setInt(1, x);
pstm.execute();
fecharBanco();
}
public void gravar(Pessoa p)throws Exception{
abrirBanco();
pstm = con.prepareStatement("insert into pessoa values(null, ?, ?,?)");
pstm.setString(1,p.getNome());
pstm.setString(2,p.getEmail());
pstm.setString(3, p.getSexo());
pstm.execute();
fecharBanco();
}
public void update(Pessoa p)throws Exception{
abrirBanco();
String query = "update pessoa set nome=?, email=?, sexo = ? where id =? ";
pstm = con.prepareStatement(query);
pstm.setString(1, p.getNome());
pstm.setString(2, p.getEmail());
pstm.setString(3, p.getSexo());
pstm.executeUpdate();
fecharBanco();
}
public Pessoa buscarporId(int id)throws Exception{
abrirBanco();
Pessoa p = new Pessoa();
String query = "select * from pessoa where id=?";
pstm = con.prepareStatement(query);
pstm.setInt(1, id);
rs = pstm.executeQuery();
if(rs.next()){
p.setId(rs.getInt("id"));
p.setNome(rs.getString("nome"));
p.setEmail(rs.getString("email"));
p.setSexo(rs.getString("sexo"));
}
fecharBanco();
return p;
}
}
------------------------------------------------------------------------------------------------------
Visão - View
"Renderiza" o model em uma forma específica para a interação, geralmente uma interface de usuário.
package br.delphos.visao;
import br.delphos.modelo.Pessoa;
import br.delphos.persistencia.PessoaDAO;
import java.util.Scanner;
public class Atualizar{
public static void main(String args[]){
Atualizar a = new Atualizar();
a.atualizar();
}
public void atualizar(){
try{
Scanner sc = new Scanner(System.in);
PessoaDAO pd = new PessoaDAO();
Pessoa p1 = new Pessoa();
System.out.printf("Digite um id a ser atulizado: ");
p1.setId(sc.nextInt());
sc.nextLine();
System.out.printf("Digite o nome a ser atualizado: ");
p1.setNome(sc.nextLine());
System.out.printf("Digite o e-mail para ser atualizado: ");
p1.setEmail(sc.nextLine());
System.out.printf("Digite o sexo a ser atulizado: ");
p1.setSexo(sc.nextLine());
pd.update(p1);
System.out.printf("Atulizado com exito");
}
catch(Exception e){
System.out.println("erro " + e.getMessage());
}
}
}
------------------------------------------------------------------------------------------------------
package br.delphos.visao;
import br.delphos.modelo.Pessoa;
import br.delphos.persistencia.PessoaDAO;
import java.util.Scanner;
public class Consultar{
public static void main(String arg[]){
Consultar c = new Consultar();
c.buscarID();
}
public void buscarID(){
Scanner input = new Scanner(System.in);
PessoaDAO pd = new PessoaDAO();
try{
System.out.printf("Digite um id para buscar: ");
Pessoa p = pd.buscarporId(input.nextInt());
System.out.println("Id: "+p.getId());
System.out.println("Nome: "+p.getNome());
System.out.println("E-mail: "+ p.getEmail());
System.out.println("Sexo: "+p.getSexo());
}
catch(Exception e){
System.out.println("Error "+e.getMessage());
}
}
}
--------------------------------------------------------------------------------------------------
package br.delphos.visao;
import br.delphos.persistencia.PessoaDAO;
import java.util.Scanner;
public class Deletar {
public static void main(String arg[]){
Deletar m = new Deletar();
m.excluir();
}
public void excluir(){
Scanner sc = new Scanner(System.in);
PessoaDAO pd = new PessoaDAO();
System.out.printf("Digite o numero do registro a ser excluido: ");
try{
pd.deletar(sc.nextInt());
System.out.printf("Registro deletado com sucesso: ");
}
catch(Exception e ){
System.out.println("Erro "+e.getMessage());
}
}
}
-------------------------------------------------------------------------------------------------------
package br.delphos.visao;
import br.delphos.modelo.Pessoa;
import br.delphos.persistencia.PessoaDAO;
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Main m = new Main();
m.gravar();
}
public void gravar(){
try{
Scanner s = new Scanner(System.in);
Pessoa p = new Pessoa();
PessoaDAO pd = new PessoaDAO();
System.out.printf("Digite o nome: ");
p.setNome(s.nextLine());
System.out.printf("Digite o e-mail: ");
p.setEmail(s.nextLine());
System.out.printf("Digite o sexo: ");
p.setSexo(s.nextLine());
pd.gravar(p);
System.out.println("inclusão feita com sucesso");
}
catch(Exception e){
System.out.println("Erro: " +e.getMessage());
}
}
}
Nenhum comentário:
Postar um comentário