从结果集获取布尔值

2022-09-03 00:16:34

ResultSet#getBoolean 在空值时似乎返回 false。
有没有一种简单的方法可以从a中获取(不是)?BooleanbooleanResultSet


答案 1

您可以在调用 getBoolean 后调用 wasNull。这里解释如下:https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#wasNull%28%29


答案 2

这应该有效:

    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();
    }

推荐