【发布时间】:2016-05-01 03:01:25
【问题描述】:
以下是我的部分代码。我的数据库部分不断出现错误。我已经在多个地方查找了它们,但似乎找不到答案。有什么建议?代码和打印为错误的内容如下所示!
public void deleteEmployee()
{
String sqlQuery;
sqlQuery = "DELETE FROM JAVAUSER.EMPLOYEE";
System.out.println(sqlQuery);
sendDBCommand(sqlQuery);
}
public void deleteAccident()
{
String sqlQuery;
sqlQuery = "DELETE FROM JAVAUSER.ACCIDENT";
System.out.println(sqlQuery);
sendDBCommand(sqlQuery);
}
public void deleteTruck()
{
String sqlQuery;
sqlQuery = "DELETE FROM JAVAUSER.TRUCK";
System.out.println(sqlQuery);
sendDBCommand(sqlQuery);
}
public void deleteHomeState()
{
String sqlQuery;
sqlQuery = "DELETE FROM JAVAUSER.HOMESTATE";
System.out.println(sqlQuery);
sendDBCommand(sqlQuery);
}
public void deleteCountry()
{
String sqlQuery;
sqlQuery = "DELETE FROM JAVAUSER.COUNTRY";
System.out.println(sqlQuery);
sendDBCommand(sqlQuery);
}
以下是不断弹出的错误:
run:
DELETE FROM JAVAUSER.HOMESTATE
java.sql.SQLException: ORA-01002: fetch out of sequence
DELETE FROM JAVAUSER.COUNTRY
java.sql.SQLException: ORA-01002: fetch out of sequence
DELETE FROM JAVAUSER.TRUCK
java.sql.SQLException: ORA-01002: fetch out of sequence
DELETE FROM JAVAUSER.ACCIDENT
java.sql.SQLException: ORA-01002: fetch out of sequence
DELETE FROM JAVAUSER.EMPLOYEE
java.sql.SQLException: ORA-01002: fetch out of sequence
另外,当我的程序按下“插入按钮”时,我会按顺序调用所有删除方法
我怎样才能摆脱这些错误消息?
这是我的 sendDBCommand:
public static void sendDBCommand(String sqlQuery)
{
String jdbcConnectionURL = "jdbc:oracle:thin:@localhost:1521:XE";
String userID = "javauser";
String userPASS = "javapass";
try
{
Connection conn = getDBConnection(jdbcConnectionURL, userID, userPASS);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rset = stmt.executeQuery(sqlQuery);
int traverse = 0;
while (rset.next())
{
System.out.println(rset.getString(1) + " " + rset.getString(2));
}
}
catch (SQLException e)
{
System.out.println(e.toString());
}
}
【问题讨论】:
-
好吧,我们不知道“sendDBCommand”到底是做什么的,谁知道呢?为什么要列出所有这些不同的数据库?
-
我刚刚添加了 sendDBCommand!对于我们的程序,我们必须在每次按下“插入按钮”时清空所有表,然后重新填充它们。 HOMESTATE、COUNTRY 和 TRUCK 已预先填充
-
您还需要向我们展示
sendDBCommand(sqlQuery);代码,因为此方法中的某个位置会抛出异常。 -
DELETE FROM JAVAUSER.ACCIDENT命令不返回任何结果集,但您正尝试使用sendDBCommand(,,,)方法从该命令获取结果,使用rset.getString(1) -
那我该如何解决呢?我有点明白你在说什么,但我还没有完全同意。
标签: java mysql sql-server oracle jdbc