Java DAO Pattern Implementation with Oracle Database

Computer science19.44 KB

Java Beans Implementation

public class AnimalBean implements Serializable {

private int nr_matricula;
private ClienteBean cliente;
private RacaBean raca;
private String nm_animal;
private String ds_cor;
private Date dt_nascimento;


public AnimalBean(){}

public AnimalBean(int nr_matricula, ClienteBean cliente, RacaBean raca,
String nm_animal, String ds_cor, Date dt_nascimento) {
super();
this.nr_matricula = nr_matricula;
this.cliente = cliente;
this.raca = raca;
this.nm_animal = nm_animal;
this.ds_cor = ds_cor;
this.dt_nascimento = dt_nascimento;
}

DEPOIS GERAR GET AND SET


public class ClienteBean implements Serializable {

private int codCliente;
private String nm_cliente;
private long nr_cpf;
private String ds_senha;
private String ds_email;
private int nr_fone;
private String ds_endereco;

public ClienteBean(){}

public ClienteBean(int codCliente, String nm_cliente, long nr_cpf,
String ds_senha, String ds_email, int nr_fone, String ds_endereco) {
super();


this.codCliente = codCliente;
this.nm_cliente = nm_cliente;
this.nr_cpf = nr_cpf;
this.ds_senha = ds_senha;
this.ds_email = ds_email;
this.nr_fone = nr_fone;
this.ds_endereco = ds_endereco;
}

}


public class RacaBean implements Serializable{

private int codRaca;
private String nm_raca;

public RacaBean(){}

public RacaBean(int codRaca, String nm_raca) {


this.codRaca = codRaca;
this.nm_raca = nm_raca;


}

public int getCodRaca() {
return codRaca;
}
public void setCodRaca(int codRaca) {
this.codRaca = codRaca;
}
public String getNm_raca() {
return nm_raca;
}
public void setNm_raca(String nm_raca) {
this.nm_raca = nm_raca;
}

}

Business Objects (BO)

public class AnimalBO {

AnimalDAO animalDAO = DAOFactory.getAnimalDAO();

public void incluir(List animais){
animalDAO.incluir(animais);
}

public void remover(int CodAnimal){
animalDAO.remover(CodAnimal);
}

public List listarPorCliente(int codCliente){
return animalDAO.listarPorCliente(codCliente);
}
}


public class ClienteBO {

ClienteDAO clienteDAO = DAOFactory.getClienteDAO();

public void incluir(ClienteBean cliente){
clienteDAO.incluir(cliente);
}

public void atualizar(ClienteBean cliente){
clienteDAO.atualizar(cliente);
}

public ClienteBean consultar(int codCliente){
return clienteDAO.consultar(codCliente);
}

public void remover (int codCliente){
clienteDAO.remover(codCliente);
}

}


public class RacaBO {

RacaDAO raca = DAOFactory.getRacaDAO();

public RacaBean consultarRaca(int codRaca){
return raca.consultar(codRaca);
}

}

Data Access Objects (DAO)

public class OracleAnimalDAO implements AnimalDAO {

@Overridepublic void incluir(List animais) {
for(AnimalBean animal : animais){

Connection conn = DBManager.getInstance().getConnection();

PreparedStatement ps = null;

try {
conn.setAutoCommit(false);

ps = conn.prepareStatement("INSERT INTO PW_ANIMAL (NR_MATRICULA, CD_CLIENTE, CD_RACA, " +
"NM_ANIMAL, DS_COR, DT_NASCIMENTO) VALUES (?, ?, ?, ?, ?, ?)");

ps.setInt(1, animal.getNr_matricula());
ps.setInt(2, animal.getCliente().getCodCliente());
ps.setInt(3, animal.getRaca().getCodRaca());
ps.setString(4, animal.getNm_animal());
ps.setString(5, animal.getDs_cor());
ps.setDate(6, (new java.sql.Date(animal.getDt_nascimento().getTime())));

ps.executeUpdate();

conn.commit();


} catch (SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
} finally {
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}}}}


@Override
public void remover(int codAnimal) {
Connection conn = DBManager.getInstance().getConnection();

PreparedStatement ps = null;
try {

conn.setAutoCommit(false);

ps = conn.prepareStatement("DELETE FROM PW_ANIMAL WHERE NR_MATRICULA = ?");
ps.setInt(1, codAnimal);

ps.executeUpdate();

conn.commit();
} catch (SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
} finally {
try {
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

}


@Override
public ListlistarPorCliente(int codCliente) {
List animais = new ArrayList();

Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;

try {
conn = DBManager.getInstance().getConnection();
ps = conn.prepareStatement("SELECT NR_MATRICULA, CD_RACA, NM_ANIMAL, DS_COR, " +
"DT_NASCIMENTO FROM PW_ANIMAL WHERE CD_CLIENTE = ?");

ps.setInt(1, codCliente);
rs = ps.executeQuery();

while(rs.next()){
AnimalBean animal = new AnimalBean();

animal.setNr_matricula(rs.getInt("NR_MATRICULA"));

RacaDAO racaDAO = DAOFactory.getRacaDAO();
RacaBean raca = racaDAO.consultar(rs.getInt("CD_RACA"));
animal.setRaca(raca);

animal.setNm_animal(rs.getString("NM_ANIMAL"));
animal.setDs_cor(rs.getString("DS_COR"));
animal.setDt_nascimento(new Date(rs.getDate("DT_NASCIMENTO").getTime()));

animais.add(animal);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}}return animais;}}

Database Manager and Interfaces

public class DBManager {

private static DBManager instance;

private DBManager() { }

public static DBManager getInstance() {
if(instance == null) {
instance = new DBManager();
}

return instance;
}

public Connection getConnection(){

Connection conn = null;
try {

Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","kidelicia", "oracle");

}catch(ClassNotFoundException e) {
System.err.println("O Driver JDBC nao foi encontrado: " +
e.getMessage());

}catch(SQLException e1) {
System.out.println("Nao foi possivel conectar com o SGBDR");
System.err.println(e1.getMessage());
}
return conn;
}
}

package simulado.interfaces;

import java.util.List;

import simulado.beans.AnimalBean;

public interface AnimalDAO {

public void incluir(List animais);
public void remover(int codAnimal);
public List listarPorCliente(int codCliente);
}

package simulado.interfaces;

public interface ClienteDAO {

public void incluir(ClienteBean cliente);

public void atualizar(ClienteBean cliente);

public ClienteBean consultar(int codCliente);

public void remover(int codCliente);

}

public interface RacaDAO {

public RacaBean consultar(int codRaca);
}

Tests and Factory

public class AnimalTeste {
public static void main(String[] args) {
//listarPorCliente(); //incluir(); //remover();
}
public static void incluir(){
List animais = new ArrayList();
ClienteBO cliente = new ClienteBO();
RacaBO raca = new RacaBO();
AnimalBO animalBO = new AnimalBO();
AnimalBean animal = new AnimalBean();
AnimalBean animal2 = new AnimalBean();
animal.setCliente(cliente.consultar(2));
animal.setDs_cor("rosa");
try {
animal.setDt_nascimento(new SimpleDateFormat("dd/MM/yyyy").parse("01/03/2012"));
} catch (ParseException e) {
e.printStackTrace();
}
animal.setNm_animal("OLA SOU AUAU");
animal.setNr_matricula(9);
animal.setRaca(raca.consultarRaca(2));
animal2.setCliente(cliente.consultar(2));
animal2.setDs_cor("preto");
animal2.setNm_animal("aquiles");
animal2.setNr_matricula(10);
animal2.setRaca(raca.consultarRaca(3));
try {
animal2.setDt_nascimento(new SimpleDateFormat("dd/MM/yyyy").parse("01/04/2013"));
} catch (ParseException e) {
e.printStackTrace();
}
animais.add(animal);
animais.add(animal2);
animalBO.incluir(animais);
}
public static void remover(){
AnimalBO animal = new AnimalBO();
animal.remover(10);
}

public class ClienteTeste {

public static void main(String[] args) {

//Testando todos os metodos //consultarCliente(); //inserirCliente(); //deletarCliente(); //atualizarCliente();
}
//Consultando o cliente
public static void consultarCliente(){
ClienteBO cliente = new ClienteBO();
ClienteBean clienteBean = new ClienteBean();
clienteBean = cliente.consultar(2);
System.out.println(clienteBean.getNm_cliente());
System.out.println(clienteBean.getDs_endereco());
System.out.println(clienteBean.getCodCliente());
}
public static void inserirCliente(){
ClienteBO cliente = new ClienteBO();
ClienteBean clienteBean = new ClienteBean();

clienteBean.setCodCliente(67);
clienteBean.setNm_cliente("VICTORIA");
clienteBean.setNr_cpf(457845784);
clienteBean.setDs_senha("senha123");
clienteBean.setDs_email("[email protected]");
clienteBean.setNr_fone(55724726);
clienteBean.setDs_endereco("rua maranduba");

cliente.incluir(clienteBean);

System.out.println("Sucesso!!");
}

public static void deletarCliente(){
ClienteBO cliente = new ClienteBO();
cliente.remover(67);
}



public class DAOFactory {

public static ClienteDAO getClienteDAO(){
return new OracleClienteDAO();
}

public static AnimalDAO getAnimalDAO(){
return new OracleAnimalDAO();
}

public static RacaDAO getRacaDAO(){
return new OracleRacaDAO();
}}--------------------------------------------------------------------------------

Continuação Animal Teste

public static void listarPorCliente(){

AnimalBO animalBO = new AnimalBO();
List animais = animalBO.listarPorCliente(2);
for(AnimalBean a : animais){
System.out.println(a.getNm_animal());
System.out.println(a.getDs_cor());
System.out.println(a.getDt_nascimento());
System.out.println(a.getRaca().getCodRaca());
} } }

Continuação Cliente Teste

public static void atualizarCliente(){
ClienteBO cliente = new ClienteBO();
ClienteBean clienteBean = new ClienteBean();

clienteBean.setCodCliente(67);
clienteBean.setNm_cliente("SUSANA");
clienteBean.setNr_cpf(23214343);
clienteBean.setDs_senha("senha433");
clienteBean.setDs_email("[email protected]");
clienteBean.setNr_fone(55724726);
clienteBean.setDs_endereco("rua maranduba");

cliente.atualizar(clienteBean);
} }

Download

PDF Word HTML