从结果集中获取空行

huangapple 未分类评论47阅读模式
英文:

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 ResultSets.

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.

huangapple
  • 本文由 发表于 2020年5月3日 17:55:40
  • 转载请务必保留本文链接:https://java.coder-hub.com/61572560.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定