W Javie próbuję przetestować wartość pustą, z ResultSet, w którym kolumna jest rzutowana na pierwotny typ int .
int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
iVal = rs.getInt("ID_PARENT");
}
}
Czy na podstawie powyższego fragmentu kodu jest lepszy sposób i zakładam, że drugi test wasNull () jest zbędny?
Edukuj nas i dziękuję
IF(colName = NULL, 0, colName) AS colName
w SELECT
oświadczeniu (najlepiej w przechowywanym proc). Filozoficznie sprowadza się to do tego, czy DB powinien być zgodny z aplikacją, czy odwrotnie. Ponieważ SQL obsługuje NULL z łatwością, a wielu klientów SQL nie (tj. java.sql.ResultSet
), Wybieram obsługę go w DB, jeśli to możliwe. (To oczywiście zakłada, że koncepcyjnie NULL i zero są równoważne dla twoich celów.)