Java 结果集移动到第一个记录

Java 结果集移动到第一个记录,java,android,Java,Android,我有以下代码: try { rsEjamatData=con.getLiveEjamatPass(ejmtid); List<Mikats> dbmessages = mdb.getAllMikats(); for (Mikats c:dbmessages){ if(rsEjamatData.next()) {

我有以下代码:

try
        {
            rsEjamatData=con.getLiveEjamatPass(ejmtid);

            List<Mikats> dbmessages = mdb.getAllMikats();

            for (Mikats c:dbmessages){

            if(rsEjamatData.next())
            {
                if(rsEjamatData.getInt(rsEjamatData.findColumn("AutoID"))!=c.getAutoID())
                {
                    flag=1;
                }
                else
                {
                    flag=2;
                }

            }
            }


            if(flag==0 || flag==1)
            {
                rsEjamatData.last();
                rsEjamatData.beforeFirst();
            }



            //flag=1;

            //if(rsData.next() )
            {
            if(flag==0 || flag==1 || rsEjamatData.getRow()>dbmessages.size())
            {

            while(rsEjamatData.next())
            {
                String eJamatID = rsEjamatData.getString(rsEjamatData.findColumn("eJamatID"));
                String mktid = rsEjamatData.getString(rsEjamatData.findColumn("MikatID"));
                String StartDate = rsEjamatData.getString(rsEjamatData.findColumn("StartDate"));                             
                String EndDate=rsEjamatData.getString(rsEjamatData.findColumn("EndDate"));

                String Block = rsEjamatData.getString(rsEjamatData.findColumn("Block"));
                String Floor = rsEjamatData.getString(rsEjamatData.findColumn("Floor"));
                String gate = rsEjamatData.getString(rsEjamatData.findColumn("gate"));                             
                String masjid=rsEjamatData.getString(rsEjamatData.findColumn("masjid"));

                String AutoID = rsEjamatData.getString(rsEjamatData.findColumn("AutoID"));                             
                String SeatName=rsEjamatData.getString(rsEjamatData.findColumn("SeatName"));

                cnt++;
                mdb.addEjamatPass(new Mikats(Integer.parseInt(eJamatID),Integer.parseInt(mktid), StartDate, EndDate, Block,Floor,gate,masjid, Integer.parseInt( AutoID),SeatName),cnt);


            }
            }
        }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
结果集正向移动

在这个过程发生之后,我想让我的结果集回到第一个位置

所以我写了:

if(flag==0 || flag==1)
            {
                rsEjamatData.last();
                rsEjamatData.beforeFirst();
            }
但是当代码进入
rsEjamatData.last()时它给了我以下异常:

java.sql.SQLException: ResultSet may only be accessed in a forward direction.
我还尝试直接写入
rsEjamatData.first()
,但给出了相同的错误

请引导我

未在第一个位置上提交,则不会进入

while(rsEjamatData.next())
            {

................
................

}

所以请帮助我。

创建一个可滚动的结果集。例如

//创建可滚动的结果集

Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
//将光标移到第一行之前的开头。 //光标位置为0

   resultSet.beforeFirst();

创建可滚动的结果集。例如

//创建可滚动的结果集

Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
//将光标移到第一行之前的开头。 //光标位置为0

   resultSet.beforeFirst();

您可以尝试添加rsEjamatData.beforeFirst()吗@维克辛格拉,等等,我会试试的it@VKSingla同样的问题您可以尝试添加rsEjamatData.beforeFirst()吗@维克辛格拉,等等,我会试试的it@VKSingla同样的problem@henriqueor请发布一个单独的答案,而不是编辑这一个。在这种情况下有任何缺点吗?比如为什么默认结果集不可滚动?@henriqueor请发布一个单独的答案,而不是编辑这个答案。在这种情况下有什么缺点吗?比如为什么默认结果集不可滚动?