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请发布一个单独的答案,而不是编辑这个答案。在这种情况下有什么缺点吗?比如为什么默认结果集不可滚动?