Getter methods and type conversion
No. 11
|
Q: |
Apart from type mappings the JDBC™ access methods like getString() may also be used for type conversion. Modify Figure 926, “Accessing friend's database records ” by:
What do you observe? |
||||
|
A: |
Modifying our iteration loop: // Step 4: Dataset iteration
while (data.next()) {
System.out.println(data.getString("id") ❶
+ ", " + data.getInt("nickname") ❷
+ ", " + data.getString("birthdate"));
}We observe:
Exception in thread "main" java.sql.SQLException: Invalid value for getInt() - 'Jim' at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) ... We may however provide “compatible” data records: DELETE FROM Friends;
INSERT INTO Friends VALUES (1, '31', '1991-10-10');This time our application executes perfectly well: 1, 31, 1991-10-10 Conclusion: The JDBC™ driver performs a conversion from a string type to an integer similar like the parseInt(String) method. |
final int count = resultSet.getInt("numProducts");Problem: Two possibilities in case of count == 0:
-
DB attribute numProducts is 0 (zero).
-
DB attribute numProducts is
null.
final int count = resultSet.getInt("numProducts");
if (resultSet.wasNull()) {
...
} else {
...
}See wasNull().
