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开始的情况,确实很难想到。因此,虽然只是一字之错,但我还是把它写了下来。- Java中从Orcle里取出数据时,为什么提示“无效的列索引”
- Oracle试用PreparedStatement出现java.sql.SQLException: 无效的列索引
- 创建索引视图时提示架构绑定无效,名称必须由两部分构成
- java.sql.SQLException: 无效的列索引
- java连接sqlserver数据库jdbc提示对象名无效问题的解决方法
- IE6下提示无法设置selected属性,无效索引错误的解决方法
- java.sql.SQLException: 无效的列索引
- 为什么我的ArcSDE数据重建索引和分析(Analye)后反而效率更慢
- java easyreport 导入excel、 txt 数据行列索引(四)
- Java HasSet 不保证数据放入后再取出时顺序是一致的
- java 将MySql数据库中的数据(某一列)取出放入数组中 转
- Sqoop-1.4.6 mysql数据导出到HDFS提示;注: java使用或覆盖了已过时的 API。关详细信息, 请使用 -Xlint:deprecation 重新编译。
- [java]java中的 == 号判断,为什么基本数据类型就是比较内容,而对象则是比较地址?
- 为什么java读取sqlserver2008中的date数据类型的数据比实际的少2天?
- sqlserver添加数据的时候提示对象名‘updated’无效
- javascript中提交时先检测数据的有效性,如果输入的值无效,则出现提示,并停止提交。
- 实现java 中 list集合中有几十万条数据,每100条为一组取出
- oracleJava.sql.SQLException: 无效的列索引
- Java SSH Hibernate通过代码实现从数据库中随机取出指定条数的随机数据
- Java SSH Hibernate通过代码实现从数据库中随机取出指定条数的随机数据