Hum… bom saber ^^ Vou ler algumas coisas sobre DAO.
Esse DAO é a mesma coisa que aquele tal de DAO e ADO que tinha no VB6???
Muito obrigado.
Apenas aproveitando o tópico, queria saber o que vcs achama da maneira que manipulo o banco. Aprendi de uma forma que acho meio suspeita e sempre fiz assim, embora eu não tenho muita certeza que esteja correto. Se vcs pudessem dar uma olhada só por cima e falar se ta certo ou errado do jeito que faço agradeceria.
Utilizando Prepared Statement
/**
* Cadastra um contato (utilizar para Clientes,Fornecedores,Funcionários...) <br>
* Recebe como paramentro um objeto contato. A definição se o registro será
* um Cliente,Fornecedor e/ou Funcionário é feita atravez de atributos
* booleanos do objeto Cliente.
*
* É retornado um objeto Contato com o id do novo contato cadastrado.
*
* @param paramContato
* - Objeto contato com os dados do novo registro.
**/
public static Contato cadastrarContato(Contato paramContato) {
try {
// verifica se existe conexão
if (!existeConexao) {
throw new SQLException( // Lança excessão de conexão não
// encontrada.
Constantes.ERRO_BANCO_CONEXAO_NAO_ENCONTRADA);
}
// String generica de insersão no banco de dados para se utilizar em
// preparedStatement.
String strComandoSQL = "INSERT INTO tbContatos("
+ "nomeCompleto,logradouro,numero,bairro,cep,cidade,telefone,telefone2,celular,fax,email,cpf,rg,vinculo,outros,razaosocial,"
+ "inscricao,contato,cnpj,uf,complemento,localizacao,dataDeCadastro,dataDeNascimento,obs,indicador,cliente"
+ ",fornecedor,funcionario,vip,excluido,ctps,ctpsserie) "
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement preStmComandoSQL = (PreparedStatement) conConexaoComBanco
.prepareStatement(strComandoSQL);
// Verifica se o Contato tem nome.
if (paramContato.getNomeCompleto().equals("")
|| paramContato.getNomeCompleto() == null) {
// Se não tiver dispara uma exception.
throw new InvalidParameterException(
Constantes.ERRO_BANCO_CONTATO_SEM_NOME);
}
if (!(paramContato.isTipoCliente()
|| paramContato.isTipoFornecedor() || paramContato
.isTipoFuncionario())) {
throw new InvalidParameterException(
Constantes.ERRO_BANCO_CONTATO_SEM_NOME);
}
// Inicia o preenchimento dos dados do Contato para o prepared
// statement
// Nome
preStmComandoSQL.setString(1, paramContato.getNomeCompleto());
// Logradouro
preStmComandoSQL.setString(2, paramContato.getEndereco()
.getLogradouro());
// Numero
preStmComandoSQL.setInt(3, paramContato.getEndereco().getNumero());
// Bairro
preStmComandoSQL.setString(4, paramContato.getEndereco()
.getBairro());
// CEP
preStmComandoSQL.setString(5, paramContato.getEndereco().getCep());
// Cidade
preStmComandoSQL.setString(6, paramContato.getEndereco()
.getCidade());
// Telefone
preStmComandoSQL.setString(7, paramContato.getTelefone());
// Telefone2
preStmComandoSQL.setString(8, paramContato.getTelefone2());
// Celular
preStmComandoSQL.setString(9, paramContato.getCelular());
// Fax
preStmComandoSQL.setString(10, paramContato.getFax());
// Email
preStmComandoSQL.setString(11, paramContato.getEmail());
// CPF
preStmComandoSQL.setString(12, paramContato.getCpf());
// RG
preStmComandoSQL.setString(13, paramContato.getRg());
// Vinculo
preStmComandoSQL.setString(14, paramContato.getVinculo());
// Outros dados
preStmComandoSQL.setString(15, paramContato.getOutros());
// razão social
preStmComandoSQL.setString(16, paramContato.getRazaoSocial());
// Inscrição
preStmComandoSQL.setString(17, paramContato.getInscricao());
// Contato
preStmComandoSQL.setString(18, paramContato.getContato());
// CNPJ
preStmComandoSQL.setString(19, paramContato.getCnpj());
// UF
preStmComandoSQL.setString(20, paramContato.getEndereco().getUf());
// Complemento
preStmComandoSQL.setString(21, paramContato.getEndereco()
.getComplemento());
// Localização
preStmComandoSQL.setString(22, paramContato.getEndereco()
.getLocalizacao());
// Datas de cadastro. Se não houver uma data insere null
if (paramContato.getDataDeCadastro() != null) {
preStmComandoSQL.setDate(23, new java.sql.Date(paramContato
.getDataDeCadastro().getTime()));
} else {
preStmComandoSQL.setDate(23, null);
}
// Datas de nascimento. Se não houver uma data insere a data
// 0/0/0000
if (paramContato.getDataDeNascimento() != null) {
preStmComandoSQL.setDate(24, new java.sql.Date(paramContato
.getDataDeNascimento().getTime()));
} else {
preStmComandoSQL.setDate(24, null);
}
// Observações
preStmComandoSQL.setString(25, paramContato.getObs());
// Indicador
preStmComandoSQL.setString(26, paramContato.getIndicador());
// TIPOS ===========================================================
// SE É CLIENTE
preStmComandoSQL.setInt(27, paramContato.isTipoCliente() ? 1 : 0);
// SE É FORNECEDOR
preStmComandoSQL
.setInt(28, paramContato.isTipoFornecedor() ? 1 : 0);
// SE É FUNCIONARIO
preStmComandoSQL.setInt(29, paramContato.isTipoFuncionario() ? 1
: 0);
// ================================================================
// Vip
preStmComandoSQL.setInt(30, paramContato.isVip() ? 1 : 0);
// Excluido
preStmComandoSQL.setInt(31, paramContato.isExcluido() ? 1 : 0);
// Ctps
preStmComandoSQL.setString(32, paramContato.getCtps());
// Ctps Serie
preStmComandoSQL.setString(33, paramContato.getCtpsSerie());
// Realiza a insersão no banco de dados.
preStmComandoSQL.execute();
// Recupera o ID do contato
Statement stmID = (Statement) conConexaoComBanco.createStatement();
ResultSet rstID = stmID.executeQuery("SELECT LAST_INSERT_ID();");
rstID.next();
long idContato = rstID.getLong("LAST_INSERT_ID()");
// Define o id do contato
paramContato.setId(idContato);
// Retorna o contato com o ID
return paramContato;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "ERRO DESCONHECIDO: "
+ e.getMessage(), Constantes.SISTEMA_NOME,
JOptionPane.ERROR_MESSAGE);
}
return null; // retorna Null (sinal de erro)
}
Statement normal
[code]
public static Contato alterarContato(Contato c) throws Exception {
if (c.getId() <= 0) {
throw new Exception(Constantes.ERRO_BANCO_CONTATO_BUSCA_ID_INVALIDO);
} else {
try {
java.sql.Statement stmUpdateContato = conConexaoComBanco
.createStatement();
String quem = " WHERE idContato = " + c.getId();
String nome, razao, obs, telefone1, telefone2, celular, fax, email, vinculo, contato, inscricao, outros, indicador, cpf, cnpj, ctps, ctpsSerie, rg;
String cliente, vip, fornecedor, funcionario, excluido;
String dataNascimento, dataCadastro;
String logradouro, numero, bairro, cidade, uf, cep, localizacao, complemento;
nome = c.getNomeCompleto() != null ? "nomeCompleto = '"
+ c.getNomeCompleto() + "', " : "";
razao = c.getRazaoSocial() != null ? "razaoSocial = '"
+ c.getRazaoSocial() + "', " : "";
telefone1 = c.getTelefone() != null ? "telefone = '"
+ c.getTelefone() + "', " : "";
telefone2 = c.getTelefone2() != null ? "telefone2 = '"
+ c.getTelefone2() + "'," : "";
celular = c.getCelular() != null ? " Celular = '"
+ c.getCelular() + "'," : "";
fax = c.getFax() != null ? "fax ='" + c.getFax() + "'," : "";
email = c.getEmail() != null ? "email = '" + c.getEmail()
+ "'," : "";
contato = c.getContato() != null ? "contato = '"
+ c.getContato() + "'," : "";
vinculo = c.getVinculo() != null ? "vinculo = '"
+ c.getVinculo() + "'," : "";
cpf = c.getCpf() != null ? "cpf = '" + c.getCpf() + "'," : "";
inscricao = c.getInscricao() != null ? "inscricao = '"
+ c.getInscricao() + "'," : "";
rg = c.getRg() != null ? "rg = '" + c.getRg() + "'," : "";
cnpj = c.getCnpj() != null ? "cnpj= '" + c.getCnpj() + "',"
: "";
ctps = c.getCtps() != null ? "ctps= '" + c.getCtps() + "',"
: "";
ctpsSerie = c.getCtpsSerie() != null ? "ctpsSerie = '"
+ c.getCtpsSerie() + "'," : "";
indicador = c.getIndicador() != null ? "indicador = '"
+ c.getIndicador() + "'," : "";
obs = c.getObs() != null ? "obs= '" + c.getObs() + "'," : "";
outros = c.getOutros() != null ? "outros= '" + c.getOutros()
+ "'," : "";
if (c.getDataDeCadastro() != null) {
dataCadastro = Funcoes.formatadorDeDatasParaSQL.format(c
.getDataDeCadastro()) != null ? "dataDeCadastro= '"
+ Funcoes.formatadorDeDatasParaSQL.format(c
.getDataDeCadastro()) + "'," : "";
}
if (c.getDataDeNascimento() != null) {
dataNascimento = Funcoes.formatadorDeDatasParaSQL.format(c
.getDataDeNascimento()) != null ? "dataDeNascimento= '"
+ Funcoes.formatadorDeDatasParaSQL.format(c
.getDataDeNascimento()) + "',"
: "";
}
logradouro = c.getEndereco().getLogradouro() != null ? "logradouro = '"
+ c.getEndereco().getLogradouro() + "',"
: "";
numero = c.getEndereco().getNumero() >= 0 ? "numero = "
+ c.getEndereco().getNumero() + "," : "";
bairro = c.getEndereco().getBairro() != null ? " bairro = '"
+ c.getEndereco().getBairro() + "'," : "";
cidade = c.getEndereco().getCidade() != null ? " cidade = '"
+ c.getEndereco().getCidade() + "'," : "";
complemento = c.getEndereco().getComplemento() != null ? "complemento = '"
+ c.getEndereco().getComplemento() + "',"
: "";
localizacao = c.getEndereco().getLocalizacao() != null ? "localizacao = '"
+ c.getEndereco().getLocalizacao() + "',"
: "";
cep = c.getEndereco().getCep() != null ? "cep = '"
+ c.getEndereco().getCep() + "'," : "";
uf = c.getEndereco().getUf() != null ? "uf = '"
+ c.getEndereco().getUf() + "'," : "";
cliente = !c.isTipoCliente() ? "cliente = 0," : "cliente = 1,";
vip = !c.isVip() ? "vip = 0," : "vip = 1,";
fornecedor = !c.isTipoFornecedor() ? "fornecedor = 0,"
: "funcionario = 1,";
funcionario = !c.isTipoFuncionario() ? "funcionario = 0,"
: "funcionario = 1,";
excluido = !c.isExcluido() ? "excluido= 0" : "excluido= 1";
String comandoSQL = "UPDATE tbContatos SET ";
comandoSQL += nome + razao + obs + telefone1 + telefone2
+ celular + fax + email + vinculo + contato + inscricao
+ outros + indicador + cpf + cnpj + ctps + ctpsSerie
+ rg + cliente + vip + fornecedor + funcionario
+ logradouro + numero + bairro + cidade + uf + cep
+ localizacao + complemento + excluido;
if (comandoSQL.lastIndexOf(",") == comandoSQL.length() - 1) {
comandoSQL = comandoSQL.substring(0,
comandoSQL.length() - 1);
}
comandoSQL += quem;
stmUpdateContato.execute(comandoSQL);
} catch (Exception e) {
System.out.println(e.getMessage());
throw new Exception(Constantes.ERRO_BANCO_CONTATO_EXCLUIR);
}
}// Fim da validação de ID
return null;
}[/code]
Muito obrigado pela ajuda.