JDBC API 4.2(十):DatabaseMetaData 接口源码分析「建议收藏」
1、简介
DatabaseMetaData 接口提供了获取数据库元数据的方法,例如数据库名称,数据库版本,驱动程序名称,表总数,视图总数等。
该接口由驱动程序供应商实现,以使用户了解数据库管理系统(DBMS)的功能以及与之结合使用的基于JDBC技术的驱动程序。
不同的DBMS通常支持不同的功能,以不同的方式实现功能以及使用不同的数据类型。 另外,驱动程序可以在DBMS提供的功能之上实现功能。 该接口中方法返回的信息适用于特定驱动程序和特定DBMS协同工作的功能。
一些 DatabaseMetaData 方法采用的参数是字符串模式。 这些参数都具有诸如fooPattern之类的名称。 在模式字符串中,“%”表示匹配任何0个或多个字符的子字符串,“ _”表示匹配任何一个字符。 仅返回与搜索模式匹配的元数据条目。 如果将搜索模式参数设置为null,则将从搜索中删除该参数的条件。
2、常用方法
方法 | 描述 |
---|---|
String getDriverName() throws SQLException | 返回 JDBC driver 名称 |
String getDriverVersion() throws SQLException | 返回 JDBC driver 版本 |
String getUserName()throws SQLException | 返回数据库用户名 |
String getDatabaseProductName() throws SQLException | 返回数据库产品名称 |
String getDatabaseProductVersion()throws SQLException | 返回数据库产品版本 |
ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException | 检索满足指定条件的可用表的描述。 |
3、示例
public class DatabaseMetaDataDemo {
public static void main(String[] args) {
databaseInfo();
}
private static void databaseInfo() {
try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/lkf_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT", "root", "root");) {
DatabaseMetaData dbmd = connection.getMetaData();
System.out.println("Driver Name: " + dbmd.getDriverName());
System.out.println("Driver Version: " + dbmd.getDriverVersion());
System.out.println("UserName: " + dbmd.getUserName());
System.out.println("Database Product Name: " + dbmd.getDatabaseProductName());
System.out.println("Database Product Version: " + dbmd.getDatabaseProductVersion());
} catch (SQLException e) {
printSQLException(e);
}
}
public static void printSQLException(SQLException ex) {
for (Throwable e: ex) {
if (e instanceof SQLException) {
e.printStackTrace(System.err);
System.err.println("SQLState: " + ((SQLException) e).getSQLState());
System.err.println("Error Code: " + ((SQLException) e).getErrorCode());
System.err.println("Message: " + e.getMessage());
Throwable t = ex.getCause();
while (t != null) {
System.out.println("Cause: " + t);
t = t.getCause();
}
}
}
}
}
输出:
Driver Name: MySQL Connector/J
Driver Version: mysql-connector-java-8.0.15 (Revision: 79a4336f140499bd22dd07f02b708e163844e3d5)
UserName: root@localhost
Database Product Name: MySQL
Database Product Version: 8.0.17
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/223409.html原文链接:https://javaforall.cn
相关文章
- Swagger2--自动生成接口文档工具学习
- 测试进阶必备,这5款http接口自动化测试工具不要太香~
- 新浪股票接口获取历史数据
- COM :IUnknown接口QueryInterface函数介绍
- 【说站】python vim模块的函数接口
- 【说站】2022年开发的Thinkphp5盲盒商城完整运营源码/对接免签支付接口
- 【说站】某鱼最近卖的很火的蓝色版去水印小程序源码+接口
- 【说站】修复登录接口2022年版最新知识付费变现小程序源码下载-独立后台版本
- 接口测试用例设计方法有哪些_接口自动化测试用例设计
- getUserMedia报错:新版本Chrome中getUserMedia接口在http下不再支持
- api数据接口文档_接口文档示例
- 聚合热搜热榜PHP接口API源码
- Java集合List接口详解——含源码分析
- Java集合Set接口详解——含源码分析
- 如何使用php调用api接口,获得返回json字符的指定字段数据
- 为在线客服系统接入chatGPT(五):chatGPT接口演示网址,vue源码开发对接chatGPT,免登录无广告
- 如何调用openai接口
- Sir在线生成短链接源码全开源+Api接口
- 聚合热搜热榜PHP接口API源码
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求!详解程序员
- Oracle数据库中接口表的构建(oracle接口表)
- C语言与MySQL数据库的数据接口编程(c 与mysql 接口)
- Satechi为2021年款苹果iMac推出铝制USB-C前置接口面板
- PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
- asp短信接口源码比较简单但也挺实用用的(两个写法)
- 利用yahoo汇率接口实现实时汇率转换示例汇率转换器
- 微信JS接口汇总及使用详解