Dúvida em como melhorar este método

1 resposta
S

Salve desenvolvedores,

Estou estudando java, sou bem newbie ainda, mas com esforço vou melhorar. O objetivo desse meu post é apenas para saber como posso melhorar esse meu método de consulta de Clientes.

O método em si vai receber do Flex um valor de CPF e em com esse CPF fazer uma consulta no BD para verificar se existe ou não o registro.

O método funciona, mas como não sei sobre padrões (ainda) peço essa ajuda. Segue abaixo o codigo.

abraços
package com.barcat.conexao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class PedidoDTO extends Conexao{

	public boolean consultaCliente(String _cpf) throws SQLException{

		String[] spl = _cpf.split("[.-]");
		String new_cpf="";
		
		for(int i=0;i<spl.length;i++){
			new_cpf = new_cpf + spl[i];
			//System.out.printf(new_cpf);			
		}		
		
		boolean resultado = true;

		try {
			conecta();
			System.out.println(new_cpf);
			String sql = "SELECT id_cliente FROM Cliente WHERE CPF = (?)";
			PreparedStatement pstm = Conexao.conexao.prepareStatement(sql);

			pstm.setString(1, new_cpf);
			ResultSet rs = pstm.executeQuery();

			if(rs != null){
				if(rs.next()){
					resultado = false;
				}

			}			
			pstm.close();

		} catch (SQLException e) {
			e.printStackTrace();
		}
		System.out.println("\n"+resultado);
		return resultado;
	}

}
:)

1 Resposta

R

Minhas opiniões:

  1. Porque extends Conexao? O que tem essa classe Conexao? Prefira composição à herança.
  2. Extrair a função de retirar mascara do CPF em uma classe especifica
  3. Chamadas ao banco de dados em um DAO. Esse classe que o Flex chama poderia ser apenas o que “vai juntar as coisas”
  4. Por que você vai consultar cliente no PedidoDTO? Não pode ter uma classe especifica para o Cliente?
  5. Se possível (e tiver tempo) olhe sobre Hibernate hoje em dia facilita muito a interação com o banco, e pode ser usado na grande maioria dos casos. (sem perdas para o JDBC)
Criado 10 de novembro de 2010
Ultima resposta 10 de nov. de 2010
Respostas 1
Participantes 2