Getting Boolean from ResultSet

ResultSet # getBoolean returns false when it is null. Is there an easy way to get Boolean(not Boolean) out ResultSet?

+7
source share
4 answers

You can call wasNull after calling getBoolean. He explained here: https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#wasNull%28%29

+8
source

This should work:

    try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test?serverTimezone=UTC");){

        // create table bool_table (bool_value boolean);
        // insert into bool_table values (null);
        String sql = "SELECT * FROM bool_table";

        try (PreparedStatement preStmt = conn.prepareStatement(sql)){

            try (ResultSet rs = preStmt.executeQuery()) {
                rs.next();

                System.out.println(rs.getObject(1, Boolean.class));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
+4
source

( : , ), ResultSet.getObject() Boolean .

:

Boolean someBool = (Boolean) rs.getObject("booleanColumnName");

, , ( : TINYINT(1)), .

This answer does the same, but with the Integerobject.

0
source
resultSet.getObject(1) == null ? null : resultSet.getBoolean(1)
0
source

Source: https://habr.com/ru/post/1654997/


All Articles