我正在尝试使用Java设置网络超时我的Oracle数据库连接.但是,我收到了一个错误.下面是示例代码,它是相应的例外.
try{
conn = new Database("oracle").connect();
conn.setNetworkTimeout(null, 30000); //I don't have an Executor, so the field is set to null
System.out.println(Switch.date() + " -> Database Connection Initialized");
}
catch(SQLException ex){
Logger.getLogger(Switch.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)
我得到的例外是:
Exception in thread "main" java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V
at ke.co.smart.Switch.<init>(Switch.java:524)
at ke.co.smart.Switch.main(Switch.java:161)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)
我认为它与抽象方法有关(读取AbstractMethodError).什么可能导致这个错误,因为我只实现了我认为已经在Java中定义的方法,因此,不拒绝编译.
注意:如果有抽象方法,Java不允许编译具体类.
我有针对Oracle 10g数据库运行的Java JDBC应用程序.我设置了PreparedStatement来执行查询,然后调用ps.executeQuery()来运行它.有时查询需要很长时间,我需要将其删除.我有另一个线程访问PreparedStatement对象,并在其上调用cancel().
我的问题是,这实际上是否会破坏数据库中的查询?或者它只是从客户端切断它,并且查询仍然在Oracle的内部运行?
谢谢!
如何通过JDBC或Java取消长时间运行的postgres查询?
用例是用户通过前端在postgres数据库上启动查询,但随后他决定并且想要中止/取消当前运行的查询.