Pacato:
Oi Nicolas tudo bom?
Funciona a query certinho... mas uma das minhas intenções é esse retorno nulo, onde vejo que o registro não está gravado no BD, assim chamo para fazer um update no registro....
Só que quando vem nulo não sei tratar no result set
Pera, pera...
Deixa eu ver se entendi direito:
Você faz uma consulta em cima de um registro. Se o campo X estiver vazio, você não faz nada, se não, atualiza, é isso?
Se for, eu acho que vale a pena você fazer a consulta dos seus dados e colocá-los em uma coleção.
Daí você itera na coleção e verifica isso, pra ficar mais "entendível", sabe?
Por exemplo (chamei sua classe POJO de Telecom, porque não sei como você a nomeou):
1. Você faz a sua consulta:
public List<Telecom> recuperarDados() throws SQLException {
String sentenca = "MONTA SUA CONSULTA";
PreparedStatement statement = connection.prepareStatement(sentenca);
ResultSet result = statement.executeQuery();
List<Telecom> telecoms = new ArrayList<Telecom>();
while (result.next()) {
Telecom telecom = new Telecom();
//
// Se o campo numSIMCard for string, você pode fazer assim:
if (result.getString("numSIMCard") != null && !result.getString("numSIMCard").equals(""))
telecom.setNumSIMCard(result.getString("numSIMCard"));
else
telecom.setNumSIMCard("");
//
// Agora, se for inteiro, pode fazer assim:
if (result.getInt("numSIMCard") != null && result.getInt("numSIMCard") != 0)
telecom.setNumSIMCard(result.getInt("numSIMCard"));
else
telecom.setNumSIMCard(-1);
telecoms.add(telecom);
}
result.close();
return telecoms;
}
2. Você já deve ter o método
UPDATE pronto. Logo, você itera na sua lista e verifica se o campo tá vazio ou não:
TelecomDAO telecomDAO = new TelecomDAO();
List<Telecom> telecoms = telecomDAO.recuperarDados();
for (Telecom telecom : telecoms) {
// se for string...
if (!telecom.getNumSIMCard().equals("")) {
telecomDAO.update(telecom);
}
// se for inteiro...
if (telecom.getNumSIMCard() != -1) {
telecomDAO.update(telecom);
}
}
Que tal?
Tenta essa panorâmica, e debuga o seu código, vendo os objetos que foram montados, analisando os valores retornados. Assim você pode ter um parecer pra gente!
Abraços!