Olá Galera,
Estou com um problema na hora de fazer uma verificação nos dados da minha tabela. Eu preciso analisar todos as cédulas da minha tabela e só deixar o sistema funcionar se todas estiverem com algum valor igual ou maior que 0. O problema é que quando o usuário deixa a cédula em branco, ele entende como zero e não cai no else. Alguém sabe como tratar isso?
Usa rs.getString(“num_estrada”)
Mas cuidado, pois String com null ou “” não é a mesma coisa.
O ideal é colocar uma restrição de not null no banco e tratar na sua classe de negócio.
Olá Augusto. O método getInt() retorna 0 quando o valor do campo é null. Para saber se o campo que você acabou de ler era nulo, chame o método wasNull() depois de recuperar seu inteiro com o metodo getInt(). Exemplo abaixo:
int numEstrada = rs.getInt("num_estrada");
if (rs.wasNull() || numEstrada < 0 {
System.out.println("VALOR INVALIDO NA TABELA");
} else {
System.out.println("OK");
}
Hum,
No caso eu preferiria não mexer no banco, a coluna “num_estrada” teria que ser do tipo integer. Fiz o teste usando getString, mas não deu certo, ele cai no else com valores = a “0”,
olha como ficou:
pq vc num usa um Integer ao invez de int o Integer aceita null diferente de tipo primitivos, se vc não atribuir um valor a um objeto do tipo Integer quando vc for buscar o valor daquele objeto ele vai te retornar null