我正在尝试从 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 回答
UYOU
TA贡献1878条经验 获得超4个赞
您已将本机 sql 编写为
String s1="Select Name from Books where ISBN='"+isbn+"'";
它只会返回一列,但是您试图在第二列获取值
name111=rs.getString(2);
您需要使用name111=rs.getString("name"); 或 name111=rs.getString(1);
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
您只选择了一个列。阅读文档以更好地理解它
String getString(int columnIndex) throws SQLException;以 Java 编程语言中的 String 形式检索此 ResultSet 对象的当前行中指定列的值。
@param columnIndex第一列是 1,第二列是 2,...
@return 列值;如果值为 SQL NULL,则返回值为 null。
所以用
rs.getString(1);
要么
rs.getString("Name");
添加回答
举报
0/150
提交
取消