在连接数据库的时候出现无效的列索引
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;impor...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ca {
public static void main(String args[]) throws ClassNotFoundException,SQLException{
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String Driver="oracle.jdbc.driver.OracleDriver";
String sql="";
int i = 0;
try{
Class.forName(Driver);
}catch(Exception e){
try {
throw new Exception("加载不起");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
System.out.println("0");
Connection conn=DriverManager.getConnection(url,"scott","tiger");
System.out.println("1");
Statement stmt=conn.createStatement();
System.out.println("2");
sql="select password from maijia where name =" + "'wgh'";
System.out.println("3");
ResultSet rs=stmt.executeQuery(sql);
System.out.println("4");
while(rs.next()){
System.out.println(rs.getString(1));}
String str="111";
if(str.equals(rs.getString(1))){
i=1;
}
System.out.println(i);
rs.close();
stmt.close();
conn.close();
}
}
为什么会提示“无效的列索引“,求高手给个具体的解决方案。。。 展开
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ca {
public static void main(String args[]) throws ClassNotFoundException,SQLException{
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String Driver="oracle.jdbc.driver.OracleDriver";
String sql="";
int i = 0;
try{
Class.forName(Driver);
}catch(Exception e){
try {
throw new Exception("加载不起");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
System.out.println("0");
Connection conn=DriverManager.getConnection(url,"scott","tiger");
System.out.println("1");
Statement stmt=conn.createStatement();
System.out.println("2");
sql="select password from maijia where name =" + "'wgh'";
System.out.println("3");
ResultSet rs=stmt.executeQuery(sql);
System.out.println("4");
while(rs.next()){
System.out.println(rs.getString(1));}
String str="111";
if(str.equals(rs.getString(1))){
i=1;
}
System.out.println(i);
rs.close();
stmt.close();
conn.close();
}
}
为什么会提示“无效的列索引“,求高手给个具体的解决方案。。。 展开
2个回答
展开全部
因为你的记录集只有一条记录,函数rs.getString(1)每调用用一次,就会向下滚动一行,当你在if语句再次调用,当然没有记录了。
应该先调用 pass = rs.getString(1);
将结果宝训到临时变量中,然后用临时变量做if判断,就可以了。
应该先调用 pass = rs.getString(1);
将结果宝训到临时变量中,然后用临时变量做if判断,就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询