java中mysql查询报错java.sql.SQLException: Before start of result set

异常:java.sql.SQLException: Before start of result set
解决方法:使用rs.getString();前一定要加上rs.next();
                sm = conn.createStatement();
                ResultSet rs = null;
                String sql_max = "SELECT id FROM a WHERE name= ‘" + name
                        + "‘ ORDER BY online_time DESC LIMIT 1";
                rs = sm.executeQuery(sql_max);
                if (rs.next()) {
                    String id = rs.getString("id");
                    int id1 = Integer.parseInt(id);
                    String sql_update = "UPDATE  b SET offline_time = NOW()  WHERE  id=" + id1
                            + " and name= ‘" + name+ "‘";
                    sm.executeUpdate(sql_update);
                }

原因:ResultSet对象代表SQL语句执行的结果集,维护指向其当前数据行的光标。每调用一次next()方法,光标向下移动一行。最初它位于第一行之前,因此第一次调用next()应把光标置于第一行上,使它成为当前行。随着每次调用next()将导致光标向下移动一行。在ResultSe对象及其t父辈Statement对象关闭之前,光标一直保持有效。

参考:https://blog.csdn.net/killua_hzl/article/details/6073618

原文地址:https://www.cnblogs.com/webttt/p/10687997.html

时间: 2024-10-11 00:23:21

java中mysql查询报错java.sql.SQLException: Before start of result set的相关文章

java连接MySQL运行报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than

错误:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than 原因:time zone 时区错误 解决方法: 1.使用root用户登录mysql,输入下面命令. show variables like '%time_zone%';SYSTEM为SQL默认美国时间,而我们中国要比他们迟8小时 2.SYSTEM为SQL默认美国时间,而我们中国要比他们迟8小时,因此将时区设置为当前系统时区即可,

Java中List.remove报错UnsupportedOperationException

Java中List.remove(removeRange,clear类似) 报出 UnsupportedOperationException 的错误.原来该List是一个AbstractList,不支持增删改操作. 一般情况下我们会使用 LinkedList 和 ArrayList ,什么情况下出现 AbstractList 呢?通过 ArrayList.asList() 函数得到的 List 就是 AbstractList.该AbstractList只是简单地在已有的元素数组上套了一层List

MySQL查询报错 ERROR: No query specified

今天1网友,查询报错ERROR: No query specified,随后它发来截图: root case:查询语法错误 \G后面不能再加分号;,因为\G在功能上等同于;,如果加了分号,那么就是;;(2个分号),SQL语法错误 备注:MySQL学习时,最好先去仔仔细细,掌握基础: 版权声明:本文为博主原创文章,未经博主允许不得转载.

java中的@Override报错解决

问题: 有时候在java的Eclipse工程中会遇到@Override报错,把@Override去掉就好了,可是有时候@Overvide太多,不能从根本上解决问题. 分析: 这是jdk版本之间区别的问题: 在Jdk1.5中@Override就已经有了,但是对接口的实现是不支持的,所以报错. 在Jdk1.6以后无论是对父类的继承还是对接口的实现都支持了 解决:首先确保机器上已经安装了Jdk1.6的版本 然后,选择eclipse菜单Windows->Preferences-->java->C

我的Android进阶之旅------>Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed.

今天在调用MediaRecorder.stop(),报错了,java.lang.RuntimeException: stop failed. E/AndroidRuntime(7698): Cause by: java.lang.RuntimeException: stop failed. E/AndroidRuntime(7698): at android.media.MediaRecorder.stop(Native Method) E/AndroidRuntime(7698): at co

myeclipse的web project中使用dom4j报错java.lang.ClassNotFoundException: org.dom4j.Document

在学习微信公众平台开发的过程中,参考了微信公众平台java开发详解(工程代码+解析)中的xml解析方法,是使用dom4j来解析的. 对于java中解析xml的方法,又参考了java解析xml的几种方式,其中介绍了DOM,SAX,Jdom,dom4j几种方法. 在使用dom4j的时候将dom4j-1.6.1.jar添加到project>>properties>>Java Build Path>>Libraries中,但在运行时仍会报出以下错误: java.lang.Cla

Android Studio 类库中配置Jpush 报错 java.lang.UnsatisfiedLinkError解决方案

JPush基类库导入需在基类库(注意是基类库,非应用项目)的build.gradle文件-sourceSets项中手动配置jniLibs.srcDir 'src/main/libs',否则JPush无法正确的加载libjpush.so文件 如: sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['

Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法

首先需要双击tomcat server,如下图所示: 双击上图后会出现,tomcat配置的界面: 然后再点击上图的,红色矩形框的链接,会弹出tomcat参数配置的节面,要选择Arguments参数框: 如上图在VM arguments文本框内设置 -XX:MaxPermSize=256m的值即可, 当然此处还可以添加其他jvm参数,比如最大内存,最小内存等.

插入mysql语句报错:1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

插入一个很简单的sql语句时候,mysql一直报错: [SQL] INSERT INTO ORDER ( id, activity_id, order_type, phone, order_amount, order_state, pay_type)VALUES ( '4', '2121313', '1', '13552444989', '1', '1', '1' ) [Err] 1064 - You have an error in your SQL syntax; check the man