代码之家  ›  专栏  ›  技术社区  ›  Joonas Pulakka

jdbc get/setobject与get/setspecifictype

  •  8
  • Joonas Pulakka  · 技术社区  · 14 年前

    JDBC ResultSet 提供getobject、getint、getstring等方法,以及 PreparedStatement 有类似的二传手。除了类型编译时类型安全之外,类型特定的getter/setter有什么(dis)优势吗,或者在任何地方都可以使用getobject/setobject?

    1 回复  |  直到 14 年前
        1
  •  5
  •   BalusC    14 年前

    没有真正的技术优势。只有当你事后自己做打字检查/打字时,它们才可能在功能上不利。

    我自己用 ResultSet#getObject() 仅当返回的值是db默认为 NULL 声明的值是原语的包装器。例如。 Integer age :

    user.setAge(resultSet.getObject("age") != null ? resultSet.getInt("age") : null);
    

    我用 PreparedStatement#setObject() 实际上,在实用方法中:

    public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException {
        for (int i = 0; i < values.length; i++) {
            preparedStatement.setObject(i + 1, values[i]);
        }
    }