簡體   English   中英

PreparedStatement的setObject()方法

[英]setObject() method of PreparedStatement

我可以對所有數據類型(如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);
            }
        }
    }

我只使用setObject()和MySQL,我從來沒有遇到過問題。 我不能代表其他數據庫或其他供應商。

您可能會遇到Blob或MSSQL DateTimeOffeet等專用日期字段的問題。

我還發現了一個問題“無法在java.lang.Character和JAVA_OBJECT之間進行轉換。”

如果參數是單個字符類型。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM