Obtención de excepción de estado de cursor no válido en Java

Ejecuté el comando select e imprimí el resultado en system.out usando el siguiente código. estaba obteniendo el resultado esperado con un error de cursor no válido. ¿podría decirnos por qué se produjo este error después de imprimir el resultado esperado y cómo solucionarlo? código:

try
        {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "path";
            conn = DriverManager.getConnection(url);
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    String select="SELECT DISTINCT col1,col2 FROM Tablename";                    
    ResultSet rs = stmt.executeQuery(select);
    ResultSetMetaData rsmd = rs.getMetaData();
    int columnsNumber = rsmd.getColumnCount();                
    String columnValue;                                         
    while (rs.next())
    {  
    for (int i = 1; i <= columnsNumber; i++) {                           
        columnValue= rs.getString(i);
        System.out.print(columnValue+" ");
        }                 
    }
}
catch(SQLException exc){
            exc.printStackTrace();
}

output:

    test1 result1
    test2 result2
    test3 result3
    java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
        at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3914)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5697)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)

Respuestas a la pregunta(1)

Su respuesta a la pregunta