Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么从一个表中删除行有效,但从另一个表中删除行无效?_Java_Oracle_Jsp - Fatal编程技术网

Java 为什么从一个表中删除行有效,但从另一个表中删除行无效?

Java 为什么从一个表中删除行有效,但从另一个表中删除行无效?,java,oracle,jsp,Java,Oracle,Jsp,我正在尝试从表中删除行。第一个程序中的代码成功地删除了一行。第二个类似程序中的代码删除零行 但是,当从SQL命令行工具发出相同的delete命令时,它会报告一行被删除 第一个方案: package oracle; import java.sql.DriverManager; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.D

我正在尝试从表中删除行。第一个程序中的代码成功地删除了一行。第二个类似程序中的代码删除零行

但是,当从SQL命令行工具发出相同的delete命令时,它会报告一行被删除

第一个方案:

package oracle;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class JDBCPreparedStatementInsertExample {

    private static final String DB_DRIVER      = "oracle.jdbc.driver.OracleDriver";
    private static final String DB_CONNECTION  = "jdbc:oracle:thin:@localhost:1521:XE";
    private static final String DB_USER        = "system";
    private static final String DB_PASSWORD    = "datta123";

    public static void main(String[] argv) {

        try {

            insertRecordIntoTable();

        } catch (SQLException e) {

            System.out.println(e.getMessage());

        }

    }

    private static void insertRecordIntoTable() throws SQLException {

        Connection dbConnection = null;
        PreparedStatement preparedStatement = null;


        try {
            dbConnection = getDBConnection();
            System.out.println("oracle database is connected:\n");
            String deleteSQL = "DELETE DBUSER WHERE username = ?";
            preparedStatement = dbConnection.prepareStatement(deleteSQL);
            preparedStatement.setString(1, "Avi");
            // execute delete SQL stetement
            int i = preparedStatement.executeUpdate();
            System.out.println("success:"+i);

        } catch (SQLException e) {

            System.out.println(e.getMessage());

        } finally {

            if (preparedStatement != null) {

                preparedStatement.close();
            }

            if (dbConnection != null) {

                dbConnection.close();
            }
        }
    }

    private static Connection getDBConnection() {

        Connection dbConnection = null;

        try {

            Class.forName(DB_DRIVER);

        } catch (ClassNotFoundException e) {

            System.out.println(e.getMessage());

        }

        try {

            dbConnection = DriverManager.getConnection(
                        DB_CONNECTION, DB_USER,DB_PASSWORD);
            return dbConnection;

        } catch (SQLException e) {

            System.out.println(e.getMessage());

        }

        return dbConnection;
     }
}
输出:

oracle database is connected: success:1 oracle database is connected: success:0 输出:

oracle database is connected: success:1 oracle database is connected: success:0 oracle数据库已连接: 成功率:0 但通过命令行工具,相同的查询被成功执行:

SQL> delete admin where name='datta'; 1 row deleted. SQL>删除管理员,其中name='datta';
删除1行。注意:请不要使用诸如“wrk”和“frm”之类的缩写词。StackOverflow不是移动聊天。相反,创建一个简洁的标题,并将问题的全文放在问题正文中,以保持清晰易读。在
admin
name
的数据类型是什么?有没有可能是
char
而不是
varchar2
?这可能与此特定问题无关,但不要使用
系统
(或
系统
)用户进行开发。这是一个保留的用户和模式,您永远不应该在其中创建对象。为你的应用程序创建一个新的架构,并在那里创建你的对象。可能是在命令行客户端会话中添加了管理记录而没有提交它吗?非常感谢Alex Poole。这是提交的问题,成功地运行了第二个程序。