0

データベースから結果セットを取得するクラスがあります。

public ResultSet GetDataFromDB() {
    ResultSet resultset = null;
    try {   
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());   
        System.out.println("Connecting to the database...");   
        Connection connection = DriverManager.getConnection(
                "jdbc:oracle:thin:@host:1521:DBname", "user123","pass123");
        Statement statement = connection.createStatement();   
        resultset = statement.executeQuery("select * from tablename"); 

        while (resultset.next()) {
            System.out.println(resultset.getInt(1) + " " +
            resultset.getInt(2) + " " + 
            resultset.getInt(3) + " " + 
            resultset.getString(4));
        }
        // statement.close();   
        //connection.close(); 
    } catch (Exception e) {   
        System.out.println("The exception raised is:" + e);   
    }

    return resultset;
} 

このクラスでは、結果セットで取得しているデータを印刷できます。しかし、別のクラスでこの結果セットを取得しようとしたとき:

Classname obj= new Classname();
ResultSet tempResultSet = obj.GetDataFromDB();
System.out.println("Records Exist "+tempResultSet.next()); <-----false

ここではデータを取得していません。また、.netのようにJavaにはデータテーブルがないので、それを使用できます...心配してくださいありがとう

4

1 に答える 1

2
while (resultset.next()) {

ResultSetこのループで からすべてのデータを既に読み取っています。

ResultSetデータの単一使用の転送専用ビューです。反復できるのは 1 回だけです。

于 2013-06-11T03:06:23.773 に答える