第一次在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里取出数据时,为什么提示“无效的列索引”相关推荐

  1. ORCALE 当表中某个字段存在重复数据时,在它后面加序号

    当表中某个字段存在重复数据时,在它后面加序号 (Partition By与row_number()的用法小记) 应用场景 orcale 数据库的一个表中的一个字段存在多个相同的值,如下图所示: 现在要 ...

  2. Java中同一个文件里类和方法的引用

    Java中同一个文件里类和方法的引用 在项目开发时往往需要在同一个文件里创建几个类,并互相引用,但小白们搞不懂,所以我给大家讲解一下 目录 Java中同一个文件里类和方法的引用 1.权限修饰符 2.类 ...

  3. 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有

    代码 /*第一题:编写程序,使用一维数组,模拟栈数据结构.要求:1.这个栈可以存储java中的任何引用类型的数据.2.在栈中提供push方法模拟压栈.(栈满了,要有提示信息.)3.在栈中提供pop方法 ...

  4. 在java中使用JDBC连接mysql数据库时的服务器时区值无法识别或表示多个时区的问题解决方案

    项目场景: 在java中使用JDBC连接mysql数据库时,报以下的错:Exception in thread "main" java.sql.SQLException: The ...

  5. MVC中利用ViewBag传递Json数据时的前端处理方法

    ** MVC中利用ViewBag传递Json数据时的前端处理方法 ** 用viewBag传递Json字符串到前端时,json字符串中的"会被转义为& quot,前端处理方法为@Htm ...

  6. 在SQL数据库中存储纬度和经度数据时要使用的数据类型是什么? [重复]

    本文翻译自:What datatype to use when storing latitude and longitude data in SQL databases? [duplicate] Th ...

  7. 假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb

    假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢? 以 ...

  8. 关于使用java中的ResourceBundle.getBundle资源管理器时遇到的找不到资源的问题

    关于使用java中的ResourceBundle.getBundle资源管理器时遇到的找不到资源的问题 使用ResourceBundle.getBundle资源管理器绑定 .properties文件时 ...

  9. ajax返回的数据怎么显示出来_Excel输入汉字、拼音首字母就能显示数据出来,录数据时逐步提示...

    在办公中经常需要录入数据,特别是财务,人力资源,采购这块,经常需要 如果经常复制.粘贴很累,即使用到数据有效性进行设置,数据量多了,也不好选择. 所以,这里介绍两个Excel插件E灵和EXCEL必备工 ...

最新文章

  1. laravel homestead环境默认账号密码
  2. 人群分析--ResnetCrowd: A Residual Deep Learning Architecture
  3. 【转】python包导入细节
  4. Python之路---------printinput
  5. 函数-函数进阶-装饰器流程分析
  6. (转)SQL Server:在 SQL Server 2005 中配置数据库邮件,发送邮件
  7. mysql 行转列 (结果集以坐标显示)
  8. 读书笔记2013第16本:《删除:大数据取舍之道》
  9. Variant 数组
  10. 简单hbase java,Hbase 简单java API 操作
  11. Linux内核对per-cpu变量的实现
  12. Winform UI界面设计例程——ListView控件
  13. 9个主流影视站手机仿站源码分享 v1.0
  14. 前端开发试用期工作总结
  15. 北京邮电大学计算机考研拟录取名单,北京邮电大学研究生拟录取名单2021公示...
  16. 闪电Android视频转换器,闪电Android视频转换器
  17. 2021-2023年个人发展规划整理
  18. jQuery Ajax 的使用 方法列表 详解教程
  19. poj_2945 Find the Clones (Trie树 内存分配)
  20. 【计算机英语】期末复习笔记

热门文章

  1. cheat sheet for cs221 at stanford: good luck
  2. shanghai road map and the operational time for 12306 system
  3. 剑桥大学eap入学测试准备!!!救命稻草
  4. 剑桥大学国际学生事务部网站
  5. 时间管理神器:滴答清单之我最喜欢的特征
  6. [51nod]1229 序列求和 V2(数学+拉格朗日差值)
  7. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧 1
  8. react-native绑定优酷SDK-附效果图和源码
  9. 共享单车开启混战模式,谁能笑到最后?
  10. MooTools Class 使用、继承详解