如何通过JDBC连接了解DB2 flavor

时间:2018-01-27 12:54:52

标签: jdbc db2

我有DB2的JDBC连接,如何识别这是Z / OS390或AS400或UDB连接。

是否有任何架构可以了解DB2的类型?

1 个答案:

答案 0 :(得分:0)

您可以使用DatabaseMetaData.getDatabaseProductName()DatabaseMetaData.getDatabaseProductVersion()。例如,在Linux for Db2 10.5修订包7上,他们分别返回DB2/LINUXX8664SQL10057

示例代码:

import java.sql.*;

class Test {
    public static void main(String args[]) {
        if (args.length == 0 ) {
            System.out.println("need url");
            System.exit(1);
        }

        String url = args[0];

        try {
            Class.forName("com.ibm.db2.jcc.DB2Driver");
            Connection c = DriverManager.getConnection(url);
            if (c != null) {
                DatabaseMetaData meta = c.getMetaData();
                if (meta != null) {
                    System.out.println( String.format(
                        "Connected to %s %s (%d.%d)",
                        meta.getDatabaseProductName(),
                        meta.getDatabaseProductVersion(),
                        meta.getDatabaseMajorVersion(),
                        meta.getDatabaseMinorVersion()
                        )
                    );
                }
                else {
                    System.out.println("Metadata is null");
                }
            }
            c.close();
        }
        catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
            System.exit(1);
        }
    }
}