java中使用prepared语句的oracle delete语句

java中使用prepared语句的oracle delete语句,java,sql,oracle,prepared-statement,sql-delete,Java,Sql,Oracle,Prepared Statement,Sql Delete,我有以下代码: PreparedStatement preparedStatement = null; try { connection = OracleDatabaseConnector.getConnection(); preparedStatement = connection.prepareStatement("DELETE FROM " + TABLE_NAME + " WHERE ssn = ?");

我有以下代码:

PreparedStatement preparedStatement = null;
        try {
            connection = OracleDatabaseConnector.getConnection();
            preparedStatement = connection.prepareStatement("DELETE FROM " + TABLE_NAME + " WHERE ssn = ?");
            preparedStatement.setString(1, musicians.getSsn());

            preparedStatement.executeUpdate();

        } finally {
            DbUtil.close(preparedStatement);
            DbUtil.close(connection);
        }

我不明白为什么不工作,当我使用sqlDeveloper刷新oracle表时,记录仍然存在。

您是否忘记提交事务?是的。我添加了connection.commit();但是结果是一样的。您确定.getSsn()返回的是您认为的吗?
PreparedStatement.executeUpdate
返回受影响行数的整数。那是1还是0?这个值是多少?
mummers.getSsn()
返回什么?好的。因此,当
delete
语句运行时,没有任何行与传入的键匹配。
mummers.getSsn()
没有返回您期望的值,或者该行对会话不可见。是否可能是您在其他会话中插入了行,但尚未提交插入?您确定您的SQL Developer会话和Java应用程序正在连接到同一个数据库并查看同一个表吗?您是否忘记提交事务?是的。我添加了connection.commit();但是结果是一样的。您确定.getSsn()返回的是您认为的吗?
PreparedStatement.executeUpdate
返回受影响行数的整数。那是1还是0?这个值是多少?
mummers.getSsn()
返回什么?好的。因此,当
delete
语句运行时,没有任何行与传入的键匹配。
mummers.getSsn()
没有返回您期望的值,或者该行对会话不可见。是否可能是您在其他会话中插入了行,但尚未提交插入?您确定您的SQL Developer会话和Java应用程序正在连接到同一个数据库并查看同一个表吗?