22

我可以对所有数据类型(如、或)使用 的setObject()方法吗?PreparedStatementStringintdouble

如果我使用它,可能会出现什么问题?

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

2 回答 2

10

setObject()专门与 MySQL 一起使用,我从来没有遇到过问题。我不能代表其他数据库或其他供应商发言。

于 2012-08-03T10:47:15.543 回答
0

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

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

如果参数是单字符类型。

    if (param instanceof Character) {
        param = "" + param;
    }
于 2016-09-01T11:59:07.267 回答