递归准备语句的条件.set方法
conditional .set method for preparedstatement recursively
我有一个列列表来检查空值并将它们插入数据库。
我知道这很简单 if/else。
if (lvl1.equalsIgnoreCase("NULL")) {
stmt.setNull(2, java.sql.Types.INTEGER);
} else {
stmt.setString(2, lvl1);
}
但是对于至少 10 列来写这个,我希望有更简单的单行代码来为每一列做这个。
是否有任何递归方法可以使这个更简单?
是否有任何单行代码可以确定列值并分配 .set
方法 .setNull()
或 .setString()
?
也许像 lvl1.setCheckNull(String)
这样的东西意味着它检查 null 如果 null 然后 .setNull()
而不是 .setString()
.
你可以像
那样编写你自己的方法
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 列。
我有一个列列表来检查空值并将它们插入数据库。 我知道这很简单 if/else。
if (lvl1.equalsIgnoreCase("NULL")) {
stmt.setNull(2, java.sql.Types.INTEGER);
} else {
stmt.setString(2, lvl1);
}
但是对于至少 10 列来写这个,我希望有更简单的单行代码来为每一列做这个。
是否有任何递归方法可以使这个更简单?
是否有任何单行代码可以确定列值并分配 .set
方法 .setNull()
或 .setString()
?
也许像 lvl1.setCheckNull(String)
这样的东西意味着它检查 null 如果 null 然后 .setNull()
而不是 .setString()
.
你可以像
那样编写你自己的方法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 列。