Java 不允许对ResultSet.type\u FORWARD\u类型的结果集执行操作
我有以下代码:Java 不允许对ResultSet.type\u FORWARD\u类型的结果集执行操作,java,mysql,Java,Mysql,我有以下代码: public static ArrayList<TicketData> readDB(Connection pConnection) { TicketData lSingleTicketData; ArrayList<TicketData> lTicketData = new ArrayList<TicketData>(); Statement lStatement; ResultSet lResult
public static ArrayList<TicketData> readDB(Connection pConnection)
{
TicketData lSingleTicketData;
ArrayList<TicketData> lTicketData = new ArrayList<TicketData>();
Statement lStatement;
ResultSet lResultSet;
try
{
lStatement = pConnection.createStatement();
lResultSet = lStatement.executeQuery("SELECT * FROM test.ticket");
lResultSet.first();
while(!lResultSet.isAfterLast())
{
lSingleTicketData = new TicketData(lResultSet.getString(1) ,lResultSet.getDate(2).toLocalDate(),lResultSet.getInt(3));
lTicketData.add(lSingleTicketData);
lResultSet.next();
}
}
catch (Exception ex)
{
System.out.println("Error at the execution + " + ex.getMessage());
}
return lTicketData;
}
这是什么原因造成的?我如何修复它?提前感谢。请阅读Javadoc中的
ResultSet.first()
:
迭代结果集的常用方法是:
while (rs.next()) {
...
}
您使问题变得比您需要的复杂得多。请编辑您的问题并添加异常的完整堆栈跟踪。
/**
* Moves the cursor to the first row in
* this <code>ResultSet</code> object.
*
* @return <code>true</code> if the cursor is on a valid row;
* <code>false</code> if there are no rows in the result set
* @exception SQLException if a database access error
* occurs; this method is called on a closed result set
* or the result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.2
*/
boolean first() throws SQLException;
while (rs.next()) {
...
}