我有DB2的JDBC连接,如何识别这是Z / OS390或AS400或UDB连接。
是否有任何架构可以了解DB2的类型?
答案 0 :(得分:0)
您可以使用DatabaseMetaData.getDatabaseProductName()
和DatabaseMetaData.getDatabaseProductVersion()
。例如,在Linux for Db2 10.5修订包7上,他们分别返回DB2/LINUXX8664
和SQL10057
。
示例代码:
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);
}
}
}