如何解决无效的列索引异常?

时间:2018-08-27 06:57:48

标签: java

我正在尝试从Table Books中的Name列获取String值。但是每次我在Oracle中收到无效的列索引异常时。

String name111=null;
String isbn=issuecall.getText();
String s1="Select Name from Books where ISBN='"+isbn+"'";

try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","nitinrawal11");
    st1=con.createStatement();
    ResultSet rs=st1.executeQuery(s1);
    while(rs.next()){
        name111=rs.getString(2);
    }
}catch(Exception e){
    e.printStackTrace();
}

getname.setText(name111);

2 个答案:

答案 0 :(得分:1)

您已将本机sql编写为

  

字符串s1 =“从ISBN ='” + isbn +“'”;的图书中选择名称;

它将仅返回一列,但是您尝试在第二列获取值

  

name111 = rs.getString(2);

您需要使用 name111 = rs.getString(“ name”);或name111 = rs.getString(1);

答案 1 :(得分:0)

您仅选择一个列。阅读文档以更好地了解它

String getString(int columnIndex) throws SQLException;
     

检索当前行中指定列的值   此ResultSet对象作为Java编程语言中的String。

     

@param columnIndex 第一列为1,第二列为2 ,...
  @返回   列值;如果值为SQL NULL,则返回的值为   空。


所以使用

rs.getString(1);

OR

rs.getString("Name");