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三层构建(三大框架的整合)
先给出项目结构图:
随机推荐
- JNI和HAL 的区别
JNI (Java Native Interface) 和 HAL (Hardware Abstraction Layer) 在 Android 系统中都扮演着与本地代码交互的重要角色,但它们的功能和 ...
- 13. 说一下$set,用在Vue2还是Vue3
$set 是 vue2 中对象用来追加响应式数据的方法 : 使用格式 : $set(对象 , 属性名 , 值 ) vue3中使用 proxy 替代了 Object.defineProperty 实现对 ...
- 46.使用过vuex和vue-router吗
使用过,vuex是状态管理工具,它的数据可以被所有的组件获取,方法可以被所有的组件调用 : vuex 的内部的运行机制:state提供了数据驱动视图,dispath派发actions 执行异步操作, ...
- day12-包机制
包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包语句的语法格式为: 包的本质就是文件夹 package pkg1[.pkg2[.pkg3...]]; 一般公司域名倒置作为 ...
- KubeSphere 社区双周报 | Fluent Operator 发布 v2.5.0 | 2023.09.01-09.14
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- Linux 基础-文本处理命令
概述 find 文件查找 grep 文本搜索 参考资料 概述 Linux 下使用 Shell 处理文本时最常用的工具有: find.grep.xargs.sort.uniq.tr.cut.paste. ...
- Spring SPI、Solon SPI 有点儿像(Maven 与 Gradle)
一.什么是 SPI SPI 全名 Service Provider interface,翻译过来就是"服务提供接口".基本效果是,申明一个接口,然后通过配置获取它的实现,进而实现动 ...
- php实现关键词过滤
在php中,可以通过trie_filter扩展实现关键词的过滤,具体操作如下 1.安装libdatrie的依赖库 libiconv wget https://ftp.gnu.org/pub/gnu/l ...
- delphi Image32 路径
用 Image32的理由之一,也是路径这块做得比delphi(FMX)自带的要好,skia中支持svg,但对路径处理功能不够强大.VCL只能使用第三方库. VCL如果要支持SVG,只有 Image32 ...
- golang读取文件
golang 按行读取文件 file, err := os.Open("app-2019-06-01.log") if err != nil { log.Fatal(err) } ...