JDBC connection.getschema()AbstractMethodError

问题描述:

我想从Teradata连接中获取默认数据库名称。我正在使用Teradata JDBC Driver 15.10.00.33。JDBC connection.getschema()AbstractMethodError

下面的代码给了我这个抽象方法的错误。任何人都可以建议我如何使用jdbc获取默认数据库名称?

Exception in thread "main" java.lang.AbstractMethodError: com.teradata.jdbc.jdk6.JDK6_SQL_Connection.getSchema()Ljava/lang/String; 
public class TestTDConnection { 

    public static void main(String args[]) { 

     String tdConnString = "jdbc:teradata://xx/database=xx"; 

     try { 
      Connection conn = DriverManager.getConnection(tdConnString,"xx","xx"); 
      System.out.println(conn.getSchema()); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

} 

如果你看的Javadoc getSchema(),你会发现以下内容:

由于:
1.7

这意味着你需要一个Java 7的驱动程序,并在错误消息类名是您使用的是Java 6的驾驶员一个明显的迹象:

com.teradata.jdbc.jdk6.JDK6_SQL_Connection 

替换驱动程序.jar文件与Java 7(JDBC 4.1)兼容的驱动程序。

或者不要使用Java 7功能。

+0

这是Teradata拥有的最新驱动程序。我想我必须找到另一种获取默认数据库名称的方法。 –

+1

我建议你问*他们*,因为[他们声称](http://developer.teradata.com/doc/connectivity/jdbc/reference/current/jdbcug_chapter_1.html)Teradata JDBC驱动程序版本15.10支持JDK 8. – Andreas

+0

我也看到了。我已经在Teradata论坛上发布了。让我看看我能得到什么。感谢您的意见。 –