Java ExecuteUpdate()不更新记录,也不提供更新的行数
我正在尝试使用jdbc插入一行。插入不起作用,在下面代码的步骤3中,我试图打印更新的行数,但该语句根本不打印。控制台不向我显示任何错误消息。谢谢你的帮助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;
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”);