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开始的情况,确实很难想到。因此,虽然只是一字之错,但我还是把它写了下来。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/

你可能感兴趣的:(javame)