DBUtil类executeQuery(String[])方法引用缺失UncategorizedSQLException报错求助
问题解决:The method executeQuery(String[]) from the type DBUtil refers to the missing type UncategorizedSQLException
错误原因
这个编译错误的核心是项目中找不到UncategorizedSQLException类的定义。该类属于Spring JDBC模块(全类名org.springframework.jdbc.UncategorizedSQLException),通常是因为缺少Spring JDBC的依赖,或者依赖未正确加载到类路径中。
解决方案
1. 补充Spring JDBC依赖
如果你的项目使用构建工具管理依赖:
- Maven项目:在
pom.xml中添加以下依赖(替换版本号为项目使用的Spring版本):
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.20</version> </dependency>
- Gradle项目:在
build.gradle中添加:
implementation 'org.springframework:spring-jdbc:5.3.20'
注意:版本号要和项目中其他Spring组件(如spring-core、spring-context)保持一致,避免版本冲突。
2. 手动管理依赖的情况
如果是手动添加jar包,需要将spring-jdbc-x.x.x.jar放入项目的类路径中:
- Web项目:放到
WEB-INF/lib目录下; - 普通Java项目:在IDE中右键项目 → 构建路径 → 添加外部jar,选中对应的spring-jdbc包。
3. 检查自定义DBUtil类
如果DBUtil是你自己实现的工具类,确认它是否在方法签名或内部逻辑中引用了UncategorizedSQLException:
- 如果不需要这个异常,可以将其替换为JDK自带的
SQLException; - 如果必须使用,确保上述依赖已正确引入。
代码小优化建议
你的代码中有几个可以改进的点:
- 变量名拼写错误:
aray应该改为array,提升可读性; - 异常返回信息优化:
catch (Exception ex)块中直接拼接ex会返回冗长的异常类名+堆栈信息,建议改为返回异常消息:
return "-1,EX," + ex.getMessage();
同时建议在catch块中添加日志记录,方便排查问题:
catch (Exception ex) { // 假设你用SLF4J日志框架 log.error("执行数据库操作失败", ex); return "-1,EX," + ex.getMessage(); }
内容的提问来源于stack exchange,提问作者Ahmer Naveed
相关产品推荐
相关产品推荐

