【问题标题】:JDBC connection.getschema() AbstractMethodErrorJDBC connection.getschema() AbstractMethodError
【发布时间】:2017-05-09 14:00:46
【问题描述】:

我正在尝试从 Teradata 的连接中获取默认数据库名称。我正在使用 Teradata JDBC 驱动程序 15.10.00.33。

下面的代码给了我这个抽象方法错误。谁能建议我如何使用 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();
        }
    }

}

【问题讨论】:

    标签: java jdbc teradata


    【解决方案1】:

    如果您查看 getSchema() 的 javadoc,您会注意到以下内容:

    自:
    1.7

    这意味着您需要 Java 7 驱动程序,错误消息中的类名明显表明您正在使用 Java 6 驱动程序:

    com.teradata.jdbc.jdk6.JDK6_SQL_Connection
    

    将驱动程序 .jar 文件替换为符合 Java 7 (JDBC 4.1) 的驱动程序。

    或者不要使用 Java 7 功能。

    【讨论】:

    • 这是 Teradata 的最新驱动程序。我想我必须找到另一种方法来获取默认数据库名称。
    • 我建议你问他们,因为they claim Teradata JDBC Driver 15.10 版支持 JDK 8。
    • 我也看到了。我也在 Teradata 论坛上发帖。让我们看看我能得到什么。感谢您的 cmets。
    • 我相信调用SELECT DATABASE, USER;无论 J 驱动程序版本如何,都会为您提供当前架构的名称
    猜你喜欢
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多