通过java代码获取MySQL delete命令中的错误
我使用jdbc从表中删除了记录,但除此之外,我得到了一个错误,如下所示:通过java代码获取MySQL delete命令中的错误,java,mysql,sql,jakarta-ee,jdbc,Java,Mysql,Sql,Jakarta Ee,Jdbc,我使用jdbc从表中删除了记录,但除此之外,我得到了一个错误,如下所示: java.sql.SQLException: Before start of result set at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQ
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2674)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2815)
at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:236)
at net.ordernet.vd.lookupTable.UpdateLookupTable.deleteLookupTableRecords(UpdateLookupTable.java:118)
at net.ordernet.vd.soap.UpdateLookupTableTool.deleteLookupTableRecords(UpdateLookupTableTool.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
我的代码如下:
1) 使用两个字符串指定查询
2) 连接对象用于准备语句
3) 已检查“int”变量中更新查询的结果
4) 我没有使用结果集,但是得到了结果集异常
try
{
String queryDeleteLookupTableRecords = "delete from LookupTableRecords where tableId = ?";
String queryDeleteLookupTableRows = "delete from LookupTableRows where tableId = ?";
PreparedStatement psDeleteLookupTableRecords = oConnection.prepareStatement(queryDeleteLookupTableRecords);
PreparedStatement psDeleteLookupTableRows = oConnection.prepareStatement(queryDeleteLookupTableRows);
psDeleteLookupTableRecords.setInt(1, oLookupTable.getID());
psDeleteLookupTableRows.setInt(1, oLookupTable.getID());
int result = psDeleteLookupTableRecords.executeUpdate();
int result2 = psDeleteLookupTableRows.executeUpdate();
if(result > 0 && result2 > 0)
{
iReturnValue = 1;
}
psDeleteLookupTableRecords.close();
psDeleteLookupTableRows.close();
}
catch (SQLException oSqlException)
{
Log.print(oSqlException);
}
您的问题不在显示的代码中。在调用
resultSet.first()
或.next()
之前,您在某个地方遇到了一个resultSet.getInt(..)
。在调用resultSet.first()
或.next()
之前,您在某个地方有一个resultSet.getInt(..)
。您能否发布方法的代码UpdateLookupTable.deleteLookupTableRecords()
?您正在那里的ResultSet
上调用getInt()
,而在此之前您似乎没有调用rs.next()
。如果您能够准确地指出异常发生的位置,这会有所帮助。并注释问题中的代码以显示给我们。@PhilippReichart,delete
语句不会返回结果集。代码为setint
notGETINT@Johan我从来没有这样说过——stacktrace显然显示了一个ResultSet
被包含在OP的代码中,但是,这也是getInt()
发生的地方。UpdateLookupTable.java:118-这是什么stacktrace和代码片段似乎没有任何关联。您能否发布方法的代码UpdateLookupTable.deleteLookupTableRecords()
?您正在那里的ResultSet
上调用getInt()
,而在此之前您似乎没有调用rs.next()
。如果您能够准确地指出异常发生的位置,这会有所帮助。并注释问题中的代码以显示给我们。@PhilippReichart,delete
语句不会返回结果集。代码为setint
notGETINT@Johan我从来没有这样说过——stacktrace显然显示了一个ResultSet
被包含在OP的代码中,但是,这也是getInt()
发生的地方。UpdateLookupTable.java:118-有什么