Java DB函数,可能的返回类型?

时间:2018-11-21 14:37:41

标签: java

我和同事就以下代码进行了半争论。我坚持以下代码将返回true(如果成功)或错误。他认为该函数仍然有可能返回false。我不知道如何。

但是,我前世是错的。

那么,代码是否有可能返回false?如果可以,怎么办?

public static boolean saveBRL(BookingReleaseItem bri) throws ClassNotFoundException, SQLException {
    //get connection to mysql database
    Connection conn = getConnection(); 
    //get count of existing items for julian date
    int count = getBRICount(conn, bri.getJulian());

    String query = "INSERT INTO BookingRL "
            + "(julian\n"
            + "serial\n"
            + "name\n"
            + "sid\n"
            + "type\n"
            + "frontDesk\n"
            + "atrReceivedTime\n"
            + "releasing\n"
            + "releaseTime) VALUES (?,?,?,?,?,?,?,?,?)";

    PreparedStatement ps = conn.prepareStatement(query);
    ps.setString(1, bri.getJulian());
    ps.setInt(2, ++count);
    ps.setString(3, bri.getName());
    ps.setString(4, bri.getSid());
    ps.setString(5, bri.getType());
    ps.setString(6, bri.getFrontDesk());
    ps.setString(7, bri.getAtrReceivedTime());
    ps.setString(8, bri.getReleasing());
    ps.setString(9, bri.getReleaseTime());

    ps.executeUpdate();

    ps.close();
    conn.close();

    return true;
}

2 个答案:

答案 0 :(得分:3)

首先,如果您不打算在相应的情况下返回两个值(真/假),则使用布尔函数是一个非常糟糕的做法(但我想这不是您的问题): ))。

其次,由于您的函数不使用第二个可能返回错误值的return语句,因此您的同事是错误的。

答案 1 :(得分:1)

我只是在猜测,您在这里谈论的是另一种代码风格。您的代码无法以任何方式返回false。唯一的可能性(这就是我猜测的可能性)是如果不抛出异常而是将其陷入您提供的方法中。

然后,如果发生异常,您可能返回false。那将是一种不同的编码方式,我会坚持在您的代码库中更常见的方式。如果您工作的其他公司都发现了例外情况,那么您也应该这样做。