Java连接数据库出现java.sql.SQLException: After end of result set的原因
源码
jb4.addActionListener(new ActionListener() {// 新增按钮事件监听器public void actionPerformed(ActionEvent e) {String str3, str4, str5, str6, str8 = null, str9 = null;String str1 = jt2.getText();String str2 = jt3.getText();str3 = jt4.getText();str4 = jt5.getText();str5 = jt6.getText();String str7 = "select ano from apply where ano='" + str1 + "'";if (str1.equals("") || str2.equals("") || str3.equals("") || str4.equals("") || str5.equals("")) {JOptionPane.showMessageDialog(null, "各项信息不能为空");} else {try {mysql.sql = mysql.con.createStatement();// 插入之前先在数据库里面查mysql.res = mysql.sql.executeQuery(str7);while (mysql.res.next()) {str8 = mysql.res.getString("ano");}str9 = mysql.res.getString("ano");if (str8 == null) {str8 = "insert into apply values(?,?,?,?,?)";PreparedStatement sql = mysql.con.prepareStatement(str8);sql.setString(1, str1);sql.setString(2, str2);sql.setString(3, str3);sql.setString(4, str4);sql.setString(5, str5);int result = sql.executeUpdate();JOptionPane.showMessageDialog(null, "插入成功");} else {JOptionPane.showMessageDialog(null, "申请编号已存在");}} catch (SQLException e1) {e1.printStackTrace();}}}});
报错
错误分析
这个是由于当我们从数据库里面读取数据的时候,引用了多个结果集,但前一个结果集取得后,已经和数据库关闭,后面还在引用结果集。也就是下面的代码
try {mysql.sql = mysql.con.createStatement();// 插入之前先在数据库里面查mysql.res = mysql.sql.executeQuery(str7);while (mysql.res.next()) {str8 = mysql.res.getString("ano");}str9 = mysql.res.getString("ano");
str8 引用结果集的是在 try 语句里面进行的,也就是数据库的连接还没有关闭,这个时候是没有问题的,但是当出现 str9 引用结果集的时候,这个时候 try 语句已经结束了,也就是和数据库已经断开连接了,所以会产生java.sql.SQLException: After end of result set的错误。
Java连接数据库出现java.sql.SQLException: After end of result set的原因相关推荐
- java.sql.SQLException: Before start of result set ---错误笔记
错误提示:java.sql.SQLException: Before start of result set 解决方法:使用rs.getString();前一定要加上rs.next(); 原因:Re ...
- sqlerror.java 1074_java.sql.SQLException: Before start of result set异常
异常: java.sql.SQLException: Before start of result set at com.mysql.jdbc.SQLError.createSQLException( ...
- java sql2005驱动_java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序...
当我尝试运行此程序时,出现此异常.这是微软的例子之一.我已经通过项目属性将sqljdbc4.jar添加到了netbeans的类路径中,以便进行编译和运行.我还测试了可以使用下面的import语句找到该 ...
- java.sql.SQLException: Before start of result set
解决方法:使用rs.getString();前一定要加上rs.next(); 原因:ResultSet对象代表SQL语句执行的结果集,维护指向其当前数据行的光标.每调用一次next()方法,光标向下移 ...
- JDBC:java.sql.SQLException: Before start of result set怎么办
这是由于Statement执行了之后,得到ResultSet,直接rs.getString,而没有运行.next()的关系 运行一下.next()即可 Connection conn = Driver ...
- JDBC编程可能遇到的错误:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or ..
文章目录 1.错误提示: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 2.提示:Loading class com.mysql.jd ...
- 使用DriverManager动态加载JDBC驱动时,报:java.sql.SQLException: No suitable driver found for xxxx 错误
参考文章: yanbin.blog - 自定义类加载器动态加载 JDBC 驱动 项目场景: 使用DriverManager动态加载JDBC驱动时,报:java.sql.SQLException: No ...
- 【解决报错】java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
IDE:IntelliJ IDEA Ultimate 2019.3 (我用的是学生版,只要大学邮箱能用就可以的) 报错信息全文附在最后.其中关键的信息就是: Root Cause java.sql.S ...
- java sqlexception_java.sql.SQLException
java.sql.SQLException: ResultSet is closed是什么错误 java.sql.SQLException:ResultSetisclosed是什么错误 java.sq ...
最新文章
- Sep 26 09:22:41 ck01 kernel: Buffer I/O error on device sda2, logical block 2
- javascript弹出窗口居中代码
- 建房子之前先挖地基 - Java BlockingQueue理解
- android RecycleView padding 和高度一样会出现什么情况?
- oracle 的目录是空的,oracle sqlplus在@命令路径中有空格的问题
- Qt中的基础图形绘制
- Java内存缓存-通过Google Guava创建缓存
- python函数(一)
- 一种常见的关于率指标的错误分析思路
- HikariCP连接池配置
- 更换 CentOS 7 的下载源为阿里云
- Spark记录-Scala记录(基础程序例子)
- tensorflow2.0 图像处理项目_游戏爱好者应该看看这个开源项目
- HBase数据读取流程解析
- [补档]noip2019集训测试赛(十五)
- Android系统联系人全特效实现(下),字母表快速滚动
- 给互联网人的反侦查手册
- java excel 数组公式_excel 数组公式
- TFT液晶屏是怎样诞生的?
- 投射电子显微镜(TEM)