HBaseIntrospector
package x;import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; /**
* @author muzhi
* @author <a href="mailto:maming.zhong2526@nvxclouds.com">Muzhi Zhang</a>
* @version 1.0.0
* @date 2023-12-12 00:59
*/
public class HBaseIntrospector extends DatabaseIntrospector {
public HBaseIntrospector(DBMetadataUtils dbMetadataUtils) {
super(dbMetadataUtils);
} public HBaseIntrospector(DBMetadataUtils dbMetadataUtils, boolean forceBigDecimals, boolean useCamelCase) {
super(dbMetadataUtils, forceBigDecimals, useCamelCase);
} @Override
public List<String> getCatalogs() throws SQLException {
return super.getCatalogs();
} @Override
public List<String> getSchemas() throws SQLException {
return super.getSchemas();
} @Override
protected Map<IntrospectedTable, List<IntrospectedColumn>> getColumns(DatabaseConfig config) throws SQLException {
DatabaseMetaData metaData = dbMetadataUtils.getDatabaseMetaData();
String[] types = {"TABLE"}; //"SYSTEM TABLE"
ResultSet resultSet = metaData.getTables(config.getCatalog(), config.getSchemaPattern(), config.getTableNamePattern(), types);
List<String> tables = new ArrayList<>();
while (resultSet.next()) {
tables.add(resultSet.getString("TABLE_NAME"));
}
return super.getColumns(config);
} @Override
public List<IntrospectedTable> introspectTables(DatabaseConfig config) throws SQLException {
DatabaseMetaData metaData = dbMetadataUtils.getDatabaseMetaData();
String[] types = {"TABLE"}; //"SYSTEM TABLE"
ResultSet resultSet = metaData.getTables(config.getCatalog(), config.getSchemaPattern(), config.getTableNamePattern(), types);
ResultSet columnsSet = metaData.getColumns(config.getCatalog(), config.getSchemaPattern(), config.getTableNamePattern(), "%");
List<IntrospectedTable> result = new ArrayList<>();
while (resultSet.next()) {
String tableName = resultSet.getString("TABLE_NAME");
IntrospectedTable table = new IntrospectedTable();
table.setName(tableName);
table.setCatalog(config.getCatalog());
result.add(table);
}
while (columnsSet.next()) {
String tableName = resultSet.getString("TABLE_NAME");
IntrospectedTable table = new IntrospectedTable();
table.setName(tableName);
table.setCatalog(config.getCatalog());
result.add(table);
}
return result;
}
}
HBaseIntrospector的更多相关文章
- 002医疗项目-主工程模块yycgproject三层构建(三大框架的整合)
先给出项目结构图:
随机推荐
- /proc/vmalloc
root@pita2_mr813_tina35:/# cat /proc/vmallocinfo 0xffffff80007d0000-0xffffff8000902000 1253376 load_ ...
- 对于ChannelNet的一点理解
主要是为了个人理解,做个笔记 1.Pytorch代码 2.论文出处 3.详细介绍 这篇论文在2018年发出来,而ShuffleNet是从2017年由旷视发出来.起初了解shufflenet的提出,主要 ...
- 使用 Debugger 断点 如果打开了断点调试 就会跳转空白页面
<!DOCTYPE html> <html> <header> <title>test</title> </header> &l ...
- synchronized的四种锁状态
Java 多线程的锁都是基于对象的,Java 中的每一个对象都可以作为一个锁. 类锁,其实就是 Class 对象的锁. Class 对象是一种特殊的 Java 对象,代表了程序中的类和接口.Java ...
- OKR 目标和关键成果
OKR(Objectives and Key Results)是目标与关键成果管理法,是一套明确和跟踪目标及其完成情况的管理工具和方法.1.OKR首先是沟通工具:团队中的每个人都要写OKR,所有这些O ...
- 构建自己的DEX
构建自己的DEX 简介:用户可通过主流钱包Dapp浏览器,访问URL地址,进行Swap, BSC链 界面演示 技术栈 Solidity React Typescript Vite Wagmi Open ...
- 2.6 使用dd命令安装Linux系统
面对大批量服务器的安装,人们往往热衷于选择"无人值守安装"的方式,而此方式需要对服务器进行过多的配置,并不适合初学者. 无人值守安装(Kickstart),又称全自动安装,其工作原 ...
- end.jenkins的备份和迁移
数据备份: 进入安装目录 cd /var/lib/jenkins 进入到主目录下,可以看到很多文件,是否需要全部打包呢?其实我们只需要打包4个文件就可以了. 如上图所示分别是 config.xml ...
- webpack 0-1 配置 以及 (性能优化)
五大核心: 模式 production developmentmode: 'development', 入口entry: './src/js/index.js', loader的配置module: { ...
- 干货分享:Air780E开发板如何使用?
一.概述 CORE-AIR780E 开发板是合宙通信推出的基于 Air780E 模组所开发的,包含电源,SIM 卡,USB,天线,音频等必要功能的最小硬件系统.以方便用户在设计前期对 Air780 ...