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



我正在尝试从表簿中存在的名称列中获取字符串值。但是每次我在 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(;

你已经将原生 sql 编写为

字符串 s1="从 ISBN='"+isbn+"'"的书籍中选择名称;

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

name111=rs.getString(2(;

你需要使用 name111=rs.getString("name"(; 或 name111=rs.getString(1(;

您只选择一列。阅读文档以更好地理解它

String getString(int columnIndex) throws SQLException;

检索当前行中指定列的值 此结果集对象在 Java 编程语言中作为字符串。

@param列索引中,第一列是 1,第二列是 2,...
@return 列值;如果值为 SQL NULL,则返回的值为 零。


所以使用

rs.getString(1);

rs.getString("Name");

最新更新