递归预处理的条件.set方法

时间:2015-03-05 10:16:24

标签: java recursion prepared-statement

我有一个列列表来检查null并将它们插入db。 我知道如果/其他很简单。

    if (lvl1.equalsIgnoreCase("NULL")) {
        stmt.setNull(2, java.sql.Types.INTEGER);
    } else {
        stmt.setString(2, lvl1);
    }

但至少有10列要写这个,我希望有更简单的单行代码为每列做更多。

是否有任何递归方法可以使这更简单? 是否有任何单行代码可以确定列值并分配.set方法.setNull()还是.setString()? 也许像lvl1.setCheckNull(String)这样的东西意味着如果为空则检查为空,然后.setNull()然后.setString()

1 个答案:

答案 0 :(得分:0)

您可以编写自己的方法,如

public void setString(PreparedStatement ps, int parameterIndex, String str) throws SQLException
{
    if(str.equalsIgnoreCase("NULL"))
        ps.setNull(parameterIndex, java.sql.Types.INTEGER);
    else
        ps.setString(parameterIndex, str);
}

然后像

一样使用它
setString(preparedStatement, 2, stringToCheck);
setString(preparedStatement, 3, string2ToCheck);

依此类推,对于你的10列。