【问题标题】:setObject() method of PreparedStatementPreparedStatement 的 setObject() 方法
【发布时间】:2012-08-03 10:00:18
【问题描述】:

我可以对所有数据类型(如Stringintdouble)使用PreparedStatementsetObject() 方法吗?

如果我使用它会有什么潜在问题?

protected void fillStatement(PreparedStatement stmt, Object[] params)
        throws SQLException {

        if (params == null) {
            return;
        }

        for (int i = 0; i < params.length; i++) {
            if (params[i] != null) {
                stmt.setObject(i + 1, params[i]);
            } else {
                stmt.setNull(i + 1, Types.OTHER);
            }
        }
    }

【问题讨论】:

标签: java jdbc


【解决方案1】:

我只在 MySQL 中使用setObject(),我从来没有遇到过问题。我不能代表其他数据库或其他供应商。

【讨论】:

    【解决方案2】:

    您可能会遇到 Blob 或 MSSQL DateTimeOffeet 等专用日期字段的问题。

    我还发现了一个问题“无法在 java.lang.Character 和 JAVA_OBJECT 之间进行转换。”

    如果参数是单字符类型。

        if (param instanceof Character) {
            param = "" + param;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多