找不到類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

相關文章
相關標籤/搜索