我正在尝试从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);
答案 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");