【问题标题】:JDBC get/setObject vs. get/setSpecificTypeJDBC get/setObject 与 get/setSpecificType
【发布时间】:2010-03-30 19:52:01
【问题描述】:

JDBC ResultSet 提供 getObject、getInt、getString 等方法,PreparedStatement 有类似的设置器。除了类型编译时类型安全之外,特定类型的 getter/setter 是否有任何(不利)优势,或者是否可以在任何地方使用 getObject/setObject?

【问题讨论】:

    标签: java jdbc types


    【解决方案1】:

    没有真正的技术(缺点)优势。如果您之后自己进行类型检查/强制转换,它们可能只会在功能上处于不利地位。

    我自己仅在返回值是 DB 默认为 NULL 的原语并且声明的值是原语的包装器时才使用 ResultSet#getObject()。例如。 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]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 1970-01-01
      • 2014-11-11
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 2011-06-10
      • 2020-07-07
      相关资源
      最近更新 更多