从结果集中获取空行

时间:2020-05-03 09:55:40

标签: java sql javafx

在这段代码中,我试图从数据库中获取结果集,但是当我执行rs.getRow()时,输出为零。一切似乎都是正确的。

打包申请;

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();
        }
    }

}

在这段代码中,我试图从数据库中获取结果集,但是当我执行re.getRow()时,输出为零。一切似乎都是正确的。

出了什么问题? 请帮助

1 个答案:

答案 0 :(得分: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()

希望这会有所帮助。

相关问题