JDBC ResultSet提供了getObject、getInt、getString等方法,PreparedStatement也有类似的setter。除了类型编译时类型安全之外,特定于类型的getter/setter有什么(不)优点吗?还是到处使用getObject/setObject都可以?
发布于 2010-03-30 11:52:02
没有真正的技术(不)优势。它们可能只在功能上是不利的,如果你之后自己做类型检查/转换的话。
我自己只在返回值是一个原语时才使用ResultSet#getObject()
,该原语默认为NULL
,并且声明的值是该原语的包装器。例如,Integer age
user.setAge(resultSet.getObject("age") != null ? resultSet.getInt("age") : null);
我几乎一直都在使用PreparedStatement#setObject()
,这是一种实用的方法:
public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException {
for (int i = 0; i < values.length; i++) {
preparedStatement.setObject(i + 1, values[i]);
}
}
https://stackoverflow.com/questions/2543238
复制相似问题