对只转发结果集的无效操作 first

今天只用jdbc连接Oracle查询结果时,出现了一个: 对只转发结果集的无效操作 first 的错误java.sql.sqlexception。

出现这个结果的原因是:使用  Statement ste = this.con.createStatement();这种方式获得的
tatement 只使用默认方式的 ResultSet。它只能通过 next()方法来进行遍历。如果使用 first()或者 last()方法就会出错。
解决的方法很简单:如下PreparedStatement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 

或者就不要使用 first() 和 last() 方法。只使用 next() 方法遍历
顺便简单介绍一下各个参数:

   1. ResultSet.TYPE_FORWARD_ONLY   (略)   2. ResultSet.TYPE_SCROLL_INSENSITIVE  双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。   3. ResultSet.TYPE_SCROLL_SENSITIVE  双向滚动,并及时跟踪数据库里的更新,以便更改ResultSet中的数据。   4. ResultSet.CONCUR_READ_ONLY  只读取ResultSet   5. ResultSet.CONCUR_UPDATABLE  用ResultSet更新数据库

对只转发结果集的无效操作 first

时间: 2024-11-06 23:46:08

对只转发结果集的无效操作 first的相关文章

java.sql.SQLException: 对只转发结果集的无效操作: last

出错代码如下:static String u = "user";static String p = "psw";static String url = "jdbc:oracle:thin:@localhost:1521:db_name";con = DriverManager.getConnection(url, u, p); statement = con.createStatement();String query1="select

对只转发结果集的无效操作:last

调用时候发生这样一个错误: SQLException: 原因是按照缺省方式打开的ResultSet不支持结果集cursor的回滚 如果想要完成上述操作,要在生成Statement对象时加入如下两个参数: ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATA

关于一般的并查集求根操作的一组对照研究

说道并查集,大家一定对于以多叉树状结构为基础的并查集并不陌生最常见的两种写法如下 1 private function getfat(x:longint):longint; 2 begin 3 while x<>c[x] do x:=c[x]; 4 exit(x); 5 end; 1 private function getfat(x:longint):longint; 2 begin 3 if x<>c[x] then exit(getfat(c[x])) else exit(x

从报错“无效操作,连接被关闭”探究Transaction的Timeout超时机制

1.报错如下:Invalid Operation the connection is closed,无效操作,连接被关闭.这个错误是并不是每次都报,只有在复杂操作.大事务的情况下才偶然报出来. stackOverflow上有很多关于这个问题的讨论,例如这个:<System.Data.OracleClient random Invalid Operation the connection is closed>,但较零散,全扫了一遍之后,我仍然有如下疑问: 1)怎么看TransactionScop

Java接口对Hadoop集群的操作

Java接口对Hadoop集群的操作 首先要有一个配置好的Hadoop集群 这里是我在SSM框架搭建的项目的测试类中实现的 一.windows下配置环境变量 下载文件并解压到C盘或者其他目录. 链接:http://pan.baidu.com/s/1jHHPElg 密码:aufd 配置环境变量 1.配置HADOOP_HOME 2.配置PATH 在PATH中添加 %HADOOP_HOME%\bin 1 3.配置HADOOP_USER_NAME 这是Hadoop集群的用户名 HADOOP_USER_N

并查集的删除操作

C - Junk-Mail Filter  HDU - 2473 题目大意:就是一堆信件,然后有两个操作,一个是把一堆信件归在一个文件夹,一个就是把一个信件从文件夹中取出,最后问有多少个文件夹,一开始所有信件都是单独的文件夹. 其实就是一个简单的并查集删除的操作,当删除时就创建新的结点来代替它,要注意的是数组的范围,虽然信件只有10的5次方,但是操作有10的6次方,因为删除时还得创建新节点,所以数组一定要开大,不然不是WR就是TL.最后的输出可以直接用set,也可以用数组标记信件是归在哪个文件夹

HDU 2473 Junk-Mail Filter (并查集的删除操作)

Problem Description Recognizing junk mails is a tough task. The method used here consists of two steps: 1) Extract the common characteristics from the incoming email. 2) Use a filter matching the set of common characteristics extracted to determine w

【Exception—WebForm】当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。

最近做的项目现在发布到服务器上开始测试了,本地好好的程序,到服务器上却报异常了: 当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作.请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知. 堆栈信息: [InvalidOperationException: 当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作.请指定 ServiceNotifica

ServerVersion异常,无效操作。连接被关闭。解决方案

[版权声明:本文为特维博客原创,未经准许谢绝转载.如需转载,请务必在转载时注明本博客地址.] 问题在于:State Closed System.Data.ConnectionState 连接没有open(). 在try中加入 if (oleDbConnection1.State != ConnectionState.Open) oleDbConnection1.Open(); 加上 finally { if (oleDbConnection1.State != ConnectionState.C