Java DAO Pattern Implementation with Oracle Database
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);
} }