java中通过databasemetadata获取数据库和jdbc驱动信息:数据库名用getdatabaseproductname(),版本用getdatabaseproductversion();驱动名用getdrivername(),驱动版本用getdriverversion(),jdbc规范版本用getjdbcmajorversion()和getjdbcminorversion()。

在 Java 中使用 JDBC 获取数据库版本和驱动信息,主要通过 DatabaseMetaData 接口实现。它由 Connection 对象提供,封装了数据库和 JDBC 驱动的元数据。
获取数据库基本信息
连接建立后,调用 connection.getMetaData() 得到 DatabaseMetaData 实例,再调用对应方法:
- 数据库产品名称:`metaData.getDatabaseProductName()` —— 如 "MySQL"、"PostgreSQL"、"Oracle"
- 数据库产品版本:`metaData.getDatabaseProductVersion()` —— 如 "8.0.33"(MySQL)、"15.3"(PostgreSQL)
- 数据库厂商支持的 SQL 语法级别:`metaData.getSQLKeywords()`、`metaData.supportsGroupByUnrelated()` 等可辅助判断兼容性
获取 JDBC 驱动信息
驱动信息同样来自 DatabaseMetaData,但注意:这些反映的是当前使用的 JDBC 驱动本身,不是数据库服务端:
- 驱动名称:`metaData.getDriverName()` —— 如 "MySQL Connector/J"、"PostgreSQL JDBC Driver"
- 驱动版本:`metaData.getDriverVersion()` —— 如 "8.0.33"、"42.6.0"
- 驱动对应 JDBC 规范版本:`metaData.getJDBCMajorVersion()` 和 `metaData.getJDBCMinorVersion()` —— 如 4 和 2 表示 JDBC 4.2
完整示例代码
以下是一个安全、简洁的获取示例(含资源自动关闭):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
try (Connection conn = DriverManager.getConnection(url, user, password);
DatabaseMetaData meta = conn.getMetaData()) {
System.out.println("数据库名称:" + meta.getDatabaseProductName());
System.out.println("数据库版本:" + meta.getDatabaseProductVersion());
System.out.println("驱动名称:" + meta.getDriverName());
System.out.println("驱动版本:" + meta.getDriverVersion());
System.out.println("JDBC 版本:" + meta.getJDBCMajorVersion() + "." + meta.getJDBCMinorVersion());
} catch (SQLException e) {
e.printStackTrace();
}
注意事项
这些方法在连接成功后才可用;若连接失败或 URL 错误,会抛出 SQLException,无法获取元数据。
某些数据库(如 H2、SQLite)可能对部分字段返回空字符串或 null,建议判空处理。
驱动 JAR 必须在 classpath 中,否则 DriverManager.getConnection() 会报“no suitable driver”错误。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










