找不到类SimpleJdbcTemplate ParameterizedRowMapper cannot be resolved

找不到类SimpleJdbcTemplate


背景

想编译个web应用,原来spring-jdbc.jar用的是Spring 3.1,今天改为用Spring 4.3,报了这个错误。html


现象

编译不经过,报错以下:java

?
1
2
3
4
5
6
Error:( 19 , 44 ) java: 找不到符号
   符号:   类 SimpleJdbcTemplate
   位置: 程序包 org.springframework.jdbc.core.simple
Error:( 17 , 44 ) java: 找不到符号
   符号:   类 ParameterizedRowMapper
   位置: 程序包 org.springframework.jdbc.core.simple

缘由

从Spring 3.1开始,JdbcTemplateNamedParameterJdbcTemplate提供了SimpleJdbcTemplate的功能。
SimpleJdbcTemplateSimpleJdbcDaoSupport被标记为过期,到Spring 4.3则被彻底移除web

注:org.springframework.jdbc.core.simple.ParameterizedRowMapper也已经被移除
至因而在哪一个版本的时候被移除就不清楚了。spring


解决办法

思路


org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
代替
org.springframework.jdbc.core.simple.SimpleJdbcTemplate. 用
org.springframework.jdbc.core.RowMapper
代替
org.springframework.jdbc.core.simple.ParameterizedRowMapper.app

具体办法

问题来了,当有分散在多地的代码都使用了SimpleJdbcTemplate,如何快速地替换为NamedParameterJdbcTemplate
若是你对IDE很是熟悉,或许能很快全局替换,然而本人智商比较爪机,使用sed命令更合适点。spa

用*RowMapper*替换*ParameterizedRowMapper*code

?
1
sudo sed -i 's/org.springframework.jdbc.core.simple.ParameterizedRowMapper/org.springframework.jdbc.core.RowMapper/g' `grep -rl 'org.springframework.jdbc.core.simple.ParameterizedRowMapper' `

用*NamedParameterJdbcTemplate*替换*SimpleJdbcTemplate*htm

?
1
sudo sed -i 's/org.springframework.jdbc.core.simple.SimpleJdbcTemplate/org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate/g' `grep -rl 'org.springframework.jdbc.core.simple.SimpleJdbcTemplate' `

说明

grep是查找命令,选项r表示级联查找,选项l表示输出包含目标的文件(不加l是输出匹配到的行)。
sed是编辑命令,选项i表示将更改写入文件(不加的话是只将更改输出到console)。ci

?
1
s/org.springframework.jdbc.core.simple.ParameterizedRowMapper/org.springframework.jdbc.core.RowMapper/g

↑是全局替换的意思。
另外,注意区别反引号和单引号哦。get

相关文章
相关标签/搜索