22

setObject()のメソッドPreparedStatementをすべてのデータ型 ( Stringintまたは など)に使用できますdoubleか?

それを使用すると、どのような問題が発生する可能性がありますか?

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 に答える