英文:
Getting Null rows from resultset
问题
在这段代码中,我试图从数据库中获取结果集,但是当我使用rs.getRow()时,输出结果为零。一切似乎都是正确的。
package application;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
public class FlightsController {
private String from_airport;
private String to_airport;
private Date departure_date;
public void fillTable(ActionEvent event) {
HomePageController homepage = new HomePageController();
from_airport = homepage.getFrom();
to_airport = homepage.getTo();
try {
ResultSet rs;
Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl2", "scott", "root");
Statement st = con.createStatement();
String sql = " select * from routes";
rs = st.executeQuery(sql);
System.out.println(rs.getRow());
rs.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这段代码中,我试图从数据库中获取结果集,但是当我使用rs.getRow()时,输出结果为零。一切似乎都是正确的。
出了什么问题?
请帮忙。
英文:
In this code I am trying to get the resultset from database but I am getting zero as output when I do rs.getRow(). Everything seems to be correct .
package application;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
public class FlightsController {
private String from_airport;
private String to_airport;
private Date departure_date;
public void fillTable(ActionEvent event)
{
HomePageController homepage = new HomePageController();
from_airport=homepage.getFrom();
to_airport=homepage.getTo();
try
{
ResultSet rs;
Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl2","scott","root");
Statement st=con.createStatement();
String sql=" select * from routes";
rs=st.executeQuery(sql);
System.out.println(rs.getRow());
rs.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
In this code I am trying to get the resultset from database but I am getting zero as output when I do re.getRow(). Everything seems to be correct .
What is going wrong?
Pls help
答案1
得分: 0
在获取行之前,您需要调用:
rs.next();
请参阅以下教程:
https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
了解如何使用ResultSet
。
方法getRow()
返回当前行的编号,在您的代码中,您位于第一行之前。
参见:https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getRow()
希望对您有所帮助。
英文:
Before you get a row, you need to call:
rs.next();
Please see this tutorial:
https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
for information on how to use ResultSet
s.
The method getRow()
gives the number of the current row, in your code, you are before the first row.
See: https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getRow()
Hope this helps.
专注分享java语言的经验与见解,让所有开发者获益!
评论