当前位置: 首页 > news >正文

SQLException:Operation not allowed after ResultSet closed

运行代码时出现的错误:

这是在运行简单的JDBC访问数据库时出现的问题,原因是在ResultSet方法中添加了close()关闭方法,如图:

  ResultSet 是通过 query 方法获得的,并且在 try-catch 块中没有显式地关闭它。这实际上是

一个常见的错误,因为 ResultSetPreparedStatement 和 Connection 资源必须在使用完之后关

闭,以避免占用数据库连接或内存的问题。

       通常,在 finally 块中关闭这些资源是最佳实践。但是,由于 ResultSet 可能在调用它的其他

位置被使用(比如在业务逻辑中),直接在 BaseDAO 中关闭它可能会导致SQLException或

NullPointerException,因为调用者可能在使用ResultSet时已经关闭了它。

解决方法:

1、关闭资源的责任委托给调用者:

        调用 query 方法的代码应该负责关闭 ResultSet。这样可以让调用者决定何时不再使用 ResultSet

2、提供关闭方法:
        可以为 ResultSet 提供一个关闭方法,这样用户可以在适当的时候调用它。

3、使用 try-with-resources 语句:
        如果可能,推荐使用 Java 7 引入的 try-with-resources 语句,这样当 ResultSet 超出作用域时,可以自动关闭它。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在MATLAB中使用importrobot导入机械臂刚体树时没有找到模型文件,只显示坐标;改为使用loadrobot
  • 文件共享功能无法使用提示错误代码0x80004005【笔记】
  • iOS中的类型推断(Type Inference)
  • [排序]hoare快速排序
  • 为什么多数大数据治理项目都是失败的?Gartner调查失败率超过90%
  • Vue2父传子
  • JNI回调用中不同线程的env无法找到正确的kotlin的class
  • Vite 常用插件配置:自动导入+自动注册组件+动态创建图标+设置组件名
  • C 语言基础概念总结
  • 在没有源程序的情况时,如何通过控制鼠标按钮控制电脑exe程序?
  • Android小技巧:利用动态代理自动切换线程(续)
  • wodpress设置固定链接的方式和好处【SEO优化】
  • Qt遇到qt自身组件找不到
  • Firefox扩展程序和Java通信
  • C# Task.WaitAll 的用法
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • HomeBrew常规使用教程
  • java第三方包学习之lombok
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JAVA之继承和多态
  • jquery cookie
  • Js基础知识(一) - 变量
  • laravel5.5 视图共享数据
  • LeetCode29.两数相除 JavaScript
  • Vue.js源码(2):初探List Rendering
  • 浮现式设计
  • 入手阿里云新服务器的部署NODE
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 实习面试笔记
  • 实现简单的正则表达式引擎
  • 王永庆:技术创新改变教育未来
  • 学习笔记:对象,原型和继承(1)
  • 用element的upload组件实现多图片上传和压缩
  • 由插件封装引出的一丢丢思考
  • 鱼骨图 - 如何绘制?
  • 阿里云重庆大学大数据训练营落地分享
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​比特币大跌的 2 个原因
  • # Redis 入门到精通(一)数据类型(4)
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (C++17) optional的使用
  • (二)linux使用docker容器运行mysql
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .htaccess配置重写url引擎
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net 4.0发布后不能正常显示图片问题
  • .NET 中的轻量级线程安全
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题