关于ResultSet.getString()

来源:百度知道 编辑:UC知道 时间:2024/06/27 07:32:46
String url="jdbc:mysql://localhost:3306/person";
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection cn = DriverManager.getConnection( url, "root", "root" );
String query = "SELECT * FROM person WHERE no='"+this.jTextField1.getText()+"'";
ResultSet results;
try
{
Statement stmt = cn.createStatement();
results = stmt.executeQuery(query);//此时无错误
System.out.println(results.getString(1));//异常
String str1=results.getString("age");//异常

this.jTextField2.setText(str1);
}
catch (Exception e)
{
System.err.println("query error");//跳到这里(e.getMessage()返回null)
}
}
catch(java.lang.ClassNotFoundException e){Syste

你改成
Statement stmt = cn.createStatement();
results = stmt.executeQuery(query);//此时无错误
while(results.next())
{
System.out.println(results.getString(1));
String str1=results.getString("age");
}
就没有问题了,这是ResultSet指向的问题,ResultSet取值后,指针默认指向index为-1的前一个元素,即ResultSet中第一个元素的前面,这时指针默认指向是不存在元素的,因此出现错误。必须调用.next()函数才能,对ResultSet进行遍历。