Spring 3.2中不推荐使用JdbcTemplate中的queryforInt /
queryforLong方法。我找不到使用这些方法替换现有代码的最佳实践的理由或理由。
典型方法:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
确定以上方法需要重新编写如下:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
显然,这种弃用使JdbcTemplate类更简单(或者呢?)。QueryForInt一直是一种便捷的方法(我想),并且已经存在了很长时间。为什么将其删除。结果,代码变得更加复杂。
我认为,有人意识到queryForInt / Long方法具有令人困惑的语义,也就是说,从JdbcTemplate源代码中可以看到其当前实现:
@Deprecated
public int queryForInt(String sql, Object... args) throws DataAccessException {
Number number = queryForObject(sql, args, Integer.class);
return (number != null ? number.intValue() : 0);
}
这可能会导致您认为如果结果集为空,则将返回0,但是会引发异常:
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
因此,以下实现实质上与当前实现等效:
@Deprecated
public int queryForInt(String sql, Object... args) throws DataAccessException {
return queryForObject(sql, args, Integer.class);
}
然后,现在必须将不推荐使用的代码替换为丑陋的代码:
queryForObject(sql, new Object { arg1, arg2, ...}, Integer.class);
或这个(更细):
queryForObject(sql, Integer.class, arg1, arg2, ...);
在Spring 3.2中,JdbcTemplate中的queryforInt/queryforLong方法被弃用。我不知道为什么或者什么是使用这些方法替换现有代码的最佳实践。 典型方法: OK以上方法需要重写如下: 显然,这种不赞成使JdbcTemplate类更简单(或者是这样吗?)。QueryForInt一直是一种方便的方法(我想),而且已经存在很长时间了。为什么要删除它。因此,代码变得更加复杂
问题内容: 我正在使用apache-httpclient-4.3。我将分析一个HTTP请求,尤其是查询字符串参数,但是 我不确定这意味着什么。我应该使用某些配置API的构造函数参数(那是什么?HostConfiguration作为类不再可用)。但是在构建阶段,我直接通过url传递查询参数: 我找不到不使用不推荐使用的方法从我的 请求 对象读回参数( var1,var2 )的方法,这种方法应该很简单
问题内容: 使用时收到以下警告: 我应该改用什么? 问题答案: 使用URLEncoder中的其他方法: 第一个参数是要编码的文本。第二个是要使用的字符编码的名称(例如)。例如:
问题内容: 一次又一次,我看到Bash在Stack Overflow上使用了答案,而答案被猛烈抨击了,旨在使用这种“邪恶的”构造。为什么这么邪恶? 如果不能安全使用,我应该怎么用呢? 问题答案: 这个问题比眼前的问题还重要。我们将从显而易见的内容开始:具有执行“脏”数据的潜力。脏数据是指尚未重写为XYZ的任何数据;在我们的例子中,它是未格式化的任何字符串,以确保评估安全。 乍看之下,对数据进行消毒
本文向大家介绍为什么在Bash中应该避免eval,我应该用什么来代替呢?,包括了为什么在Bash中应该避免eval,我应该用什么来代替呢?的使用技巧和注意事项,需要的朋友参考一下 eval是Bash shell的内置命令,它将其参数连接为单个字符串。然后,它将参数与空格连接起来,然后将该字符串作为bash命令执行。以下是其工作方式的示例。 eval示例 在下面的示例中,我们使用一个字符串,该字符串
原始关闭原因未解决 既然getToken()已弃用,我想知道获得Firebase令牌以发送消息推送的正确方法是什么。