场景
Spring
框架版本升级,从Spring2
升级到Spring5
,其中spring-jdbc
部分出现了问题,提示queryForInt
方法不存在。本文主要是讲述这种问题的解决方案。
环境
软件 | 版本 |
---|---|
spring-jdbc | 5.2.9.RELEASE |
JDK | 1.8 |
正文
解决思路
原本报错代码如下:
这里的SQL
主要是获取最大的编号。而spring5
已经移除了该方法。不过,我们是可以在spring-jdbc
找到替换的方法的。使用的方法如下:
具体的方法解释,本文就不解释了。有需要请自行查看API文档。
代码示例
单纯SQL执行的示例
像博主上文所述的,就是单纯的SQL
,已经将条件什么都拼接进去了。那这里可以直接替换为以下代码:
JdbcTemplate jt = this.getJdbcTemplate();
int maxNo = jt.queryForObject(sql.toString(), Integer.class);
存在占位符及参数执行的示例
如果SQL
是使用占位符
进行参数替换,那么就要使用另外一个方法,可以选择以下方法:
public <T> T queryForObject(String sql, @Nullable Object[] args, Class<T> requiredType) throws DataAccessException {
return this.queryForObject(sql, args, this.getSingleColumnRowMapper(requiredType));
}
public <T> T queryForObject(String sql, Class<T> requiredType, @Nullable Object... args) throws DataAccessException {
return this.queryForObject(sql, args, this.getSingleColumnRowMapper(requiredType));
}
总结
本文主要是讲述queryForInt
方法的替换方法,并根据不同情况选择不同的方法。
随缘求赞
如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!