找不到类SimpleJdbcTemplate


背景

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


现象

编译不通过,报错如下:

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则被完全移除

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


解决办法

思路


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

具体办法

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

用*RowMapper*替换*ParameterizedRowMapper*

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*

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)。

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

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

找不到类SimpleJdbcTemplate ParameterizedRowMapper cannot be resolved的更多相关文章

  1. Oracle EBS Java Applet报错:找不到类

    Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...

  2. 错误:找不到类org.springframework.web.context.ContextLoaderListener

    严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis ...

  3. .PHP后缀大写导致Linux下Composer找不到类

    在本地Windows写完一个Composer包,上传到Linux报错找不到类,纠结了一下午,最后发现是.PHP后缀大写导致的问题. mv Google2FA.PHP Google2FA.php

  4. RMIC命令提示找不到类的问题

    问题环境: RMI服务类已经写好. 目录结构: -- A ----- B -------- C ------------- RMIImpl.class RMIImpl.java : package B ...

  5. idea下使用Maven找不到类

    当我们配置好pom文件的时候,准备启动Tomcat,Tomcat缺报找不到类的错误.. 可是明明我们的pom文件是没有问题的,在web.xml中也是可以ctrl+鼠标左键把类找到-为啥就报这么一个错误 ...

  6. 解决Android studio生成H文件时报找不到类文件错误

    今天整理思路时觉得在native直接调用java的方法显示这个办法挺不错 于是就用到了生成H文件 可能我的编译环境和他们的不一样 网上的教程如下 javah -d ../jni com.jm.prom ...

  7. Java和Javac的使用时总提示找不到类模块的解决方案

    1.场景: 争对网上的很多文章中javac编译与java运行的文章,有很多不明确的地方,使得在合适时发现很多坑.这里给大家作下简介. 2.Javac的使用注意: javac -d ./ ./Insta ...

  8. eclipse中运行 main 方法报错,找不到类

    eclipse (maven 项目)中运行 main 方法报错,找不到类 ** 发现:在 eclipse中的 "Marker" 控制面板中 ,发现问题所在 只要删除 maven 仓 ...

  9. atitit。解决 No suitable Log constructor。。NoClassDefFoundError: org/apache/log4j/Category 找不到类的

    atitit.解决 No suitable Log constructor..NoClassDefFoundError: org/apache/log4j/Category 找不到类的 1. 深的层次 ...

随机推荐

  1. java使用正则表达式

    package com.regexp; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Tes ...

  2. VS2013 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array<int>::operator [](int)”只是在返回类型上不同

    1,VS2013 错误 1 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array ...

  3. 第十章 优先级队列 (b1)完全二叉堆:结构

  4. (转)FFMPEG filter使用实例(实现视频缩放,裁剪,水印等)

    本文转载自http://blog.csdn.net/li_wen01/article/details/62442162 FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字 ...

  5. [LeetCode_105]Construct Binary Tree from Preorder and Inorder Traversal

    题目链接 https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题意 由二叉 ...

  6. 36-2018 蓝桥杯Java B组试题及答案

    1:第几天2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 用excel算,答案125. 2.标题:方格计数 ...

  7. css常见问题一

    [1]禁止换行.class {word-break:keep-all;white-space:nowrap;}[2]强制换行.class{word-break:break-all;}普通容器中(Div ...

  8. 关于控制反转(IOC)容器 ,依赖注入(DI)模式必读文章收集

    推荐一篇国外設計大師Martin Fowler的大作:Inversion of Control Containers and the Dependency Injection pattern http ...

  9. Charles抓取https包

    Android: 1.若滑动解锁,请先设置屏幕锁: 2.然后浏览器输入Charlesproxy.com/getssl,安装证书,出现安装证书提示,随便打个名称 比如Android,选择WLAN(这里A ...

  10. CORBA简介

    使用.NET开发corba应用 一. 什么是IIOP.NET IIOP.NET 是通过使用基于corba的IIOP支持.NET.javaEE和corba组件实现无缝互操作的技术.如图1.1所示,这种解 ...