Java中从Orcle里取出数据时,为什么提示“无效的列索引”
第一次在Java中用JDBC连接Oracle数据库,连接通了,但是一个简单的SQL查询,却报告“无效的列索引”。
开始,我以为是Oracle里的表索引没有设置。于是,我给要查询的表添加了索引。但是,还是报同样的错。
记得,前段时间,我用JSP中用JDBC连接过Oracle数据库,SQL查询查出来过记录。只是当时用的数据表不同。于是,我又试着用与JSP中同样的代码,同样的数据表再测了一次。结果,还是不行。
没办法,只得请教一位公司里的JAVA高手,让她帮忙看一下。原来,是我取字段的时候,字段序号写错了。高手就是高手,一看就看出来了。
错误代码如下:
……
ResultSet rs = null;
try {
……
if (rs.first()) {
String col = rs.getString(0); // 错误代码处
}
}
}
……
完整的正确代码如下:
// 省略数据库连接部分
String sqlquery = "select * from users";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sqlquery,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = ps.executeQuery();
if (rs.first()) {
String col = rs.getString(1); // 修改后的正确代码
}
}
} catch (SQLException se) {
throw se;
} catch (Exception ex) {
throw ex;
} finally {
if (rs != null)
rs.close();
if (ps != null)
ps.close();
}
从上面的代码可以看出,ResultSet类型的getString(int index)方法,是以1开始的。我用的是0,所以出错了。
VB中数字以1开关,Java同C++一样,数字一般以0开始。而像这样突然在Java里面出现以1开始的情况,确实很难想到。因此,虽然只是一字之错,但我还是把它写了下来。
转载于:https://www.cnblogs.com/legendry/archive/2006/06/03/416631.html
Java中从Orcle里取出数据时,为什么提示“无效的列索引”相关推荐
- ORCALE 当表中某个字段存在重复数据时,在它后面加序号
当表中某个字段存在重复数据时,在它后面加序号 (Partition By与row_number()的用法小记) 应用场景 orcale 数据库的一个表中的一个字段存在多个相同的值,如下图所示: 现在要 ...
- Java中同一个文件里类和方法的引用
Java中同一个文件里类和方法的引用 在项目开发时往往需要在同一个文件里创建几个类,并互相引用,但小白们搞不懂,所以我给大家讲解一下 目录 Java中同一个文件里类和方法的引用 1.权限修饰符 2.类 ...
- 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有
代码 /*第一题:编写程序,使用一维数组,模拟栈数据结构.要求:1.这个栈可以存储java中的任何引用类型的数据.2.在栈中提供push方法模拟压栈.(栈满了,要有提示信息.)3.在栈中提供pop方法 ...
- 在java中使用JDBC连接mysql数据库时的服务器时区值无法识别或表示多个时区的问题解决方案
项目场景: 在java中使用JDBC连接mysql数据库时,报以下的错:Exception in thread "main" java.sql.SQLException: The ...
- MVC中利用ViewBag传递Json数据时的前端处理方法
** MVC中利用ViewBag传递Json数据时的前端处理方法 ** 用viewBag传递Json字符串到前端时,json字符串中的"会被转义为& quot,前端处理方法为@Htm ...
- 在SQL数据库中存储纬度和经度数据时要使用的数据类型是什么? [重复]
本文翻译自:What datatype to use when storing latitude and longitude data in SQL databases? [duplicate] Th ...
- 假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb
假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢? 以 ...
- 关于使用java中的ResourceBundle.getBundle资源管理器时遇到的找不到资源的问题
关于使用java中的ResourceBundle.getBundle资源管理器时遇到的找不到资源的问题 使用ResourceBundle.getBundle资源管理器绑定 .properties文件时 ...
- ajax返回的数据怎么显示出来_Excel输入汉字、拼音首字母就能显示数据出来,录数据时逐步提示...
在办公中经常需要录入数据,特别是财务,人力资源,采购这块,经常需要 如果经常复制.粘贴很累,即使用到数据有效性进行设置,数据量多了,也不好选择. 所以,这里介绍两个Excel插件E灵和EXCEL必备工 ...
最新文章
- laravel homestead环境默认账号密码
- 人群分析--ResnetCrowd: A Residual Deep Learning Architecture
- 【转】python包导入细节
- Python之路---------printinput
- 函数-函数进阶-装饰器流程分析
- (转)SQL Server:在 SQL Server 2005 中配置数据库邮件,发送邮件
- mysql 行转列 (结果集以坐标显示)
- 读书笔记2013第16本:《删除:大数据取舍之道》
- Variant 数组
- 简单hbase java,Hbase 简单java API 操作
- Linux内核对per-cpu变量的实现
- Winform UI界面设计例程——ListView控件
- 9个主流影视站手机仿站源码分享 v1.0
- 前端开发试用期工作总结
- 北京邮电大学计算机考研拟录取名单,北京邮电大学研究生拟录取名单2021公示...
- 闪电Android视频转换器,闪电Android视频转换器
- 2021-2023年个人发展规划整理
- jQuery Ajax 的使用 方法列表 详解教程
- poj_2945 Find the Clones (Trie树 内存分配)
- 【计算机英语】期末复习笔记
热门文章
- cheat sheet for cs221 at stanford: good luck
- shanghai road map and the operational time for 12306 system
- 剑桥大学eap入学测试准备!!!救命稻草
- 剑桥大学国际学生事务部网站
- 时间管理神器:滴答清单之我最喜欢的特征
- [51nod]1229 序列求和 V2(数学+拉格朗日差值)
- JavaScript 工作原理之十一-渲染引擎及性能优化小技巧 1
- react-native绑定优酷SDK-附效果图和源码
- 共享单车开启混战模式,谁能笑到最后?
- MooTools Class 使用、继承详解