Dê uma olhada nessa minha classe chamada BaseDAO, ela implementa as funcionalidades básicas de conexão com o banco de dados:
package br.com.unilocsys.persistence.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import br.com.unilocsys.exception.DAOException;
import br.com.unilocsys.model.bean.ClienteBean;
import br.com.unilocsys.model.type.Cliente;
/**
* Classe responsável em persistir
* os dados do cliente no banco de dados
*/
public class ClienteDAO extends BaseDAO {
private static final String INSERT =
""
.concat("insert into Cliente \n")
.concat(" (cod_cli, nome_cli, nascimento_cli, rg_cli, cpf_cli, sexo_cli, email_cli, foto_cli, end_cli, num_cli, bairro_cli, cidade_cli, uf_cli, cep_cli, comp_cli) \n")
.concat(" values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) \n");
private static final String SELECT_BY_COD =
""
.concat("select * \n")
.concat(" from Cliente \n")
.concat(" where cod_cli = ? \n");
private static final String SELECT_ALL =
""
.concat("select * \n")
.concat(" from Cliente \n");
private static final String UPDATE =
""
.concat("update Cliente \n")
.concat(" set nome_cli = ?, \n")
.concat(" nascimento_cli = ?, \n")
.concat(" rg_cli = ?, \n")
.concat(" cpf_cli = ?, \n")
.concat(" sexo_cli = ?, \n")
.concat(" email_cli = ?, \n")
.concat(" foto_cli = ?, \n")
.concat(" end_cli = ?, \n")
.concat(" num_cli = ?, \n")
.concat(" bairro_cli = ?, \n")
.concat(" cidade_cli = ?, \n")
.concat(" uf_cli = ?, \n")
.concat(" cep_cli = ?, \n")
.concat(" comp_cli = ? \n")
.concat(" where cod_cli = ? \n");
private static final String DELETE =
""
.concat("delete from Cliente \n")
.concat(" where cod_cli = ? \n");
/**
* Construtor default da classe
* @throws DAOException
*/
public ClienteDAO() throws DAOException {
super();
}
/**
* Método que insere um cliente no banco de dados
* @throws DAOException
*/
public void insert(ClienteBean clienteBean) throws DAOException {
PreparedStatement statement = null;
Connection connection = null;
try {
connection = this.getConnection();
statement = connection.prepareStatement(INSERT);
statement.setInt(1, clienteBean.getCod());
statement.setString(2, clienteBean.getNome());
statement.setDate(3, new Date(clienteBean.getNascimento().getTime()));
statement.setString(4, clienteBean.getRg());
statement.setString(5, clienteBean.getCpf());
statement.setString(6, clienteBean.getSexo());
statement.setString(7, clienteBean.getEmail());
statement.setBytes(8, clienteBean.getFoto());
statement.setString(9, clienteBean.getEndereco().getEndereco());
statement.setString(10, clienteBean.getEndereco().getNum());
statement.setString(11, clienteBean.getEndereco().getBairro());
statement.setString(12, clienteBean.getEndereco().getCidade());
statement.setString(13, clienteBean.getEndereco().getUf());
statement.setString(14, clienteBean.getEndereco().getCep());
statement.setString(15, clienteBean.getEndereco().getComplemento());
statement.execute();
} catch (SQLException e) {
throw new DAOException("Erro ao inserir o Cliente");
} finally {
this.closeConnection(statement);
}
}
/**
* Método que retorna um cliente especifico do banco de dados
* @throws DAOException
*/
public ClienteBean select(Cliente cliente) throws DAOException {
PreparedStatement statement = null;
Connection connection = null;
ResultSet resultSet = null;
ClienteBean clienteBean = null;
try {
connection = this.getConnection();
statement = connection.prepareStatement(SELECT_BY_COD);
statement.setInt(1, cliente.getCod());
resultSet = statement.executeQuery();
if (resultSet.next()) {
clienteBean = new ClienteBean();
clienteBean.setCod(resultSet.getInt("cod_cli"));
clienteBean.setNome(resultSet.getString("nome_cli"));
clienteBean.setNascimento(resultSet.getDate("nascimento_cli"));
clienteBean.setRg(resultSet.getString("rg_cli"));
clienteBean.setCpf(resultSet.getString("cpf_cli"));
clienteBean.setSexo(resultSet.getString("sexo_cli"));
clienteBean.setEmail(resultSet.getString("email_cli"));
clienteBean.setFoto(resultSet.getBytes("foto_cli"));
clienteBean.getEndereco().setEndereco(resultSet.getString("end_cli"));
clienteBean.getEndereco().setNum(resultSet.getString("num_cli"));
clienteBean.getEndereco().setBairro(resultSet.getString("bairro_cli"));
clienteBean.getEndereco().setCidade(resultSet.getString("cidade_cli"));
clienteBean.getEndereco().setUf(resultSet.getString("uf_cli"));
clienteBean.getEndereco().setCep(resultSet.getString("cep_cli"));
clienteBean.getEndereco().setComplemento(resultSet.getString("comp_cli"));
}
} catch (SQLException e) {
throw new DAOException("Erro ao localizar o Cliente");
} finally {
this.closeConnection(statement, resultSet);
}
return clienteBean;
}
/**
* Método que retorna todos os clientes do banco de dados
* @throws DAOException
*/
public Collection<ClienteBean> select() throws DAOException {
PreparedStatement statement = null;
Connection connection = null;
ResultSet resultSet = null;
ClienteBean clienteBean = null;
Collection<ClienteBean> clienteList = new ArrayList<ClienteBean>();
try {
connection = this.getConnection();
statement = connection.prepareStatement(SELECT_ALL);
resultSet = statement.executeQuery();
while (resultSet.next()) {
clienteBean = new ClienteBean();
clienteBean.setCod(resultSet.getInt("cod_cli"));
clienteBean.setNome(resultSet.getString("nome_cli"));
clienteBean.setNascimento(resultSet.getDate("nascimento_cli"));
clienteBean.setRg(resultSet.getString("rg_cli"));
clienteBean.setCpf(resultSet.getString("cpf_cli"));
clienteBean.setSexo(resultSet.getString("sexo_cli"));
clienteBean.setEmail(resultSet.getString("email_cli"));
clienteBean.setFoto(resultSet.getBytes("foto_cli"));
clienteBean.getEndereco().setEndereco(resultSet.getString("end_cli"));
clienteBean.getEndereco().setNum(resultSet.getString("num_cli"));
clienteBean.getEndereco().setBairro(resultSet.getString("bairro_cli"));
clienteBean.getEndereco().setCidade(resultSet.getString("cidade_cli"));
clienteBean.getEndereco().setUf(resultSet.getString("uf_cli"));
clienteBean.getEndereco().setCep(resultSet.getString("cep_cli"));
clienteBean.getEndereco().setComplemento(resultSet.getString("comp_cli"));
clienteList.add(clienteBean);
}
} catch (SQLException e) {
throw new DAOException("Erro ao carregar todos os Clientes");
} finally {
this.closeConnection(statement, resultSet);
}
return clienteList;
}
/**
* Método que atualiza um cliente no banco de dados
* @throws DAOException
*/
public void update(ClienteBean clienteBean) throws DAOException {
PreparedStatement statement = null;
Connection connection = null;
try {
connection = this.getConnection();
statement = connection.prepareStatement(UPDATE);
statement.setString(1, clienteBean.getNome());
statement.setDate(2, new Date(clienteBean.getNascimento().getTime()));
statement.setString(3, clienteBean.getRg());
statement.setString(4, clienteBean.getCpf());
statement.setString(5, clienteBean.getSexo());
statement.setString(6, clienteBean.getEmail());
statement.setBytes(7, clienteBean.getFoto());
statement.setString(8, clienteBean.getEndereco().getEndereco());
statement.setString(9, clienteBean.getEndereco().getNum());
statement.setString(10, clienteBean.getEndereco().getBairro());
statement.setString(11, clienteBean.getEndereco().getCidade());
statement.setString(12, clienteBean.getEndereco().getUf());
statement.setString(13, clienteBean.getEndereco().getCep());
statement.setString(14, clienteBean.getEndereco().getComplemento());
statement.setInt(15, clienteBean.getCod());
statement.execute();
} catch (SQLException e) {
throw new DAOException("Erro ao atualizar o Cliente");
} finally {
this.closeConnection(statement);
}
}
/**
* Método que remove um cliente do banco de dados
* @throws DAOException
*/
public void delete(Cliente cliente) throws DAOException {
PreparedStatement statement = null;
Connection connection = null;
try {
connection = this.getConnection();
statement = connection.prepareStatement(DELETE);
statement.setInt(1, cliente.getCod());
statement.execute();
} catch (SQLException e) {
throw new DAOException("Erro ao remover o Cliente");
} finally {
this.closeConnection(statement);
}
}
}