java.lang.AbstractMethodError:Method com/extendedsystems/jdbc/advantage/ADSDatabaseMetaData.supportsSavepoints()是抽象的
我有一个使用Advantage DB的客户端,我正在尝试使用JDBC进行连接。 我的网址如下java.lang.AbstractMethodError:Method com/extendedsystems/jdbc/advantage/ADSDatabaseMetaData.supportsSavepoints()是抽象的,jdbc,database-connection,advantage-database-server,Jdbc,Database Connection,Advantage Database Server,我有一个使用Advantage DB的客户端,我正在尝试使用JDBC进行连接。 我的网址如下 jdbc:extendedsystems:advantage://localhost:6262;catalog=C:\Program Files (x86)\company\CMWin\Data\cmwin.add 当我连接时(当前使用datagrip,但其他一切都是相同的错误),我会得到一个 java.lang.AbstractMethodError: Method com/extendedsyst
jdbc:extendedsystems:advantage://localhost:6262;catalog=C:\Program Files (x86)\company\CMWin\Data\cmwin.add
当我连接时(当前使用datagrip,但其他一切都是相同的错误),我会得到一个
java.lang.AbstractMethodError: Method com/extendedsystems/jdbc/advantage/ADSDatabaseMetaData.supportsSavepoints()Z is abstract
我知道JDBC驱动程序可以工作,但我不能100%确定出了什么问题
目前我看到了这些表,但当我试图访问它们时,我发现了上面的错误,并且
SELECT t.* FROM table t java.lang.AbstractMethodError: Method com/extendedsystems/jdbc/advantage/ADSDatabaseMetaData.supportsSavepoints()Z is abstract at com.extendedsystems.jdbc.advantage.ADSDatabaseMetaData.supportsSavepoints(Unknown Source) at com.intellij.database.remote.jdbc.impl.RemoteDatabaseMetaDataImpl.supportsSavepoints(RemoteDatabaseMetaDataImpl.java:1350) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) (no stack trace)
supportsSavePoints
方法是在JDBC3(Java1.4)中引入的。AbstractMethodError
表明该驱动程序只实现JDBC2.1(Java1.3IIRC)或者可能只实现更老的JDBC版本
这得到了以下方面的支持,即:
Advantage JDBC驱动程序支持JDBC 2.0核心接口。它是
使用JDK/JRE 1.3编译和测试。JDBC驱动程序的优势
可以连接到Advantage Database Server 7.0或更高版本
联系数据库的供应商(或驱动程序,如果它是一个独立的供应商),询问他们是否有一个版本的驱动程序实现了更多的“最新”JDBC特性(最近的引用,因为JDBC 3从2001年12月开始)。JDBC规范的当前版本是JDBC4.3,与Java9一起引入
您根本不能期望软件满足古老的JDBC实现。DatabaseMetaData.supportsXXX()
方法用于应用程序发现功能支持,人们应该能够预期,在引入JDBC 17年后,它应该可以安全使用。请注意,Datagrip可能期望JDBC4.1(Java7)支持,甚至更高