Java ExecuteUpdate()不更新记录,也不提供更新的行数

Java ExecuteUpdate()不更新记录,也不提供更新的行数,java,oracle,jdbc,insert-update,ojdbc,Java,Oracle,Jdbc,Insert Update,Ojdbc,我正在尝试使用jdbc插入一行。插入不起作用,在下面代码的步骤3中,我试图打印更新的行数,但该语句根本不打印。控制台不向我显示任何错误消息。谢谢你的帮助 package isf; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Path;

我正在尝试使用jdbc插入一行。插入不起作用,在下面代码的步骤3中,我试图打印更新的行数,但该语句根本不打印。控制台不向我显示任何错误消息。谢谢你的帮助

  package isf;
  import java.io.BufferedReader;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.nio.file.Files;
  import java.nio.file.Path;
  import java.nio.file.Paths;
  import java.sql.Connection;
  import java.sql.PreparedStatement;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Statement;
  import oracledbreader.DbConnection;

public class FileReader {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

    Path p = Paths.get("C:/Users/Downloads/courselist-cohort1.txt");
    PreparedStatement ps = null;

    Connection c = null;
    try {

        InputStream in = Files.newInputStream(p);
        BufferedReader reader
                = new BufferedReader(new InputStreamReader(in));
        String line = null;

        Statement stmt = null;
        ResultSet rs = null;
        c = DbConnection.getConnection();

        // Step 2: Create the statement object  
        stmt = c.createStatement();

        // Step 3: Execute query  
        rs = stmt.executeQuery("SELECT COUNT(*) AS count FROM COURSE");

        int courseCount = 0;
        while (rs.next()) {
            courseCount = rs.getInt(1);
        }
        String sql = "INSERT INTO COURSE (COURSE_ID, COURSE_NAME , PROGRAM_CODE) VALUES (?,?,?)";
           ps= c.prepareStatement(sql);
           System.out.println("before:"+ps.toString());
           ps.setString(1, ""+(courseCount+1));
           ps.setString(2, "testing");
           ps.setString(3, "101");
           System.out.println("After:"+ps.toString()); 
           int rowCount=ps.executeUpdate();
           System.out.println("rows updated: "+rowCount);

    } catch (Exception x) {
        x.printStackTrace();
        System.err.println(x);

    } finally {

        try {
            ps.close();
        } catch (Exception e) {
            /* ignored */ }
        try {
            c.close();
        } catch (Exception e) {
            /* ignored */ }
    }
  }  
}

当您在IDE调试器中逐步完成此操作时,您会看到什么?运行:技术系统简介阅读财务报表领导与团队合作0之前:oracle.jdbc.driver。OraclePreparedStatementWrapper@2b98378d之后:oracle.jdbc.driver。OraclePreparedStatementWrapper@2b98378dMaybe您的错误输出以某种方式发送到其他地方。尝试更改为
x.printStackTrace(System.out)
System.out.println(x)
——或者,
executeUpdate()
永远不会返回,因为它正在等待数据库锁。杀死所有数据库会话,然后重试。@Andreas仍然没有错误或异常此语句System.out.println(“行更新:+rowCount”);