2016-12-23 4 views
1

Я пытаюсь получить имя базы данных по умолчанию из соединения для Teradata. Я использую драйвер Teradata JDBC 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(); 
     } 
    } 

} 

ответ

4

Если посмотреть на 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 Driver версии 15.10 поддерживает JDK 8. – Andreas

+0

Я тоже это видел. Я также разместил на форуме Teradata. позволяет видеть, что я могу получить. Спасибо за ваши комментарии. –