的PreparedStatement的的setObject()方法(setObject() meth

2019-09-20 17:30发布

我可以使用setObject()的方法PreparedStatement所有数据类型(如Stringintdouble )?

什么是潜在的问题,如果我用的?

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

Answer 1:

我使用setObject()只与MySQL和我从来没有遇到过问题的。 我不能代表其它数据库或其他供应商说。



Answer 2:

你可能有斑点或类似MSSQL DateTimeOffeet专门日期字段的问题。

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

如果参数是一个字符类型。

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


文章来源: setObject() method of PreparedStatement
标签: java jdbc