Hive通过Jdbc获取表的字段信息
参考代码如下:
/**
* 按顺序返回字段
* desc table的返回结果形式如下:
hive> describe ind01acoM;
OK
acq_ins_id_cd string
cups_sig_card_in string
resv string
ins_id_cd string
hp_settle_dt string
# Partition Information
# col_name data_type comment
ins_id_cd string
hp_settle_dt string
*/
public Map<String, String> queryAllColumnsAndType(String table) throws Exception {
//Map<String, String> allColumnsAndType = new CaseInsensitiveMap();
//为了保证字段顺序
Map<String, String> allColumnsAndType = new LinkedHashMap<>();
Connection connection = null;
try{
connection = getConnection();
ResultSet rs = connection.createStatement().executeQuery("describe " + table);
if (rs != null) {
while (rs.next()) {
String col_name = rs.getString("col_name");
if(!StringUtils.isBlank(col_name)){
allColumnsAndType.put(rs.getObject("col_name").toString(), rs.getObject("data_type").toString());
}else break;
//System.out.println(rs.getString("col_name") + "\t" + rs.getString("data_type"));
}
}
//去除分区列
allColumnsAndType.remove("hp_settle_dt");
allColumnsAndType.remove("ins_id_cd");
return allColumnsAndType;
}catch(Exception e){
e.printStackTrace();
logger.error("获取字段-类型失败,表:{}",table);
throw e;
}finally {
closeConn(null, null, connection);
}
}
Hive通过Jdbc获取表的字段信息的更多相关文章
- C# 获取SqLite数据库表信息以及获取表内字段信息
#region 最新数据表信息显示事件 /// <summary> /// 最新数据表信息显示事件 /// </summary> /// <param name=&quo ...
- orcale获取表、字段信息
获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * fr ...
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
- MySql 获取表的字段名
mysql安装成功后可以看到已经存在mysql.information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库 ...
- JDBC获取表的主键
JDBC获取表的主键 案例,创建订单,并根据订单号向订单明细表插入数据 sql语句: 创建两表 create table orders( id number(4) primary key, cus ...
- mysql中通过sql语句查询指定数据表的字段信息
mysql数据库在安装完成时,自动创建了information_schema.mysql.test这三个数据库.其中,information_schema记录了创建的所有数据库的相关信息,因此可以 ...
- 如何获取表增长历史记录信息? (Doc ID 1395195.1)
How To Get Table Growth History Information? (Doc ID 1395195.1) APPLIES TO: Oracle Database - Enterp ...
- mysql存储过程,获取指定数据库的某个表的字段信息
DROP PROCEDURE IF EXISTS Proc; DELIMITER //CREATE PROCEDURE Proc(database_name varchar(50),table_nam ...
- MSSQL 获取数据库、表、字段信息语句
--获取所有数据库名称 SELECT Name FROM Master..SysDatabases ORDER BY Name --获取库里所有表名 SELECT * FROM SysObjects ...
随机推荐
- C语言中的const用法
Const是什么? const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程 ...
- 应聘阿里,字节跳动美团90%会问到的JVM面试题! 史上最全系列!
Java 内存分配 • 寄存器:程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码.• 静态域:static 定义的静态成员.• 常量池:编译时被确定并保存在 .class 文件中的(f ...
- Boom 3D快捷方式,让3D音效应用更便捷
快捷方式是一种快速启动程序.打开程序功能的方法,巧妙地利用快捷键,可以大大加快我们使用Boom 3D的速度,可以让我们更好地享受3D音效. 接下来,就让小编演示一下怎么在不打开Boom 3D的情况下使 ...
- elasticsearch 使用同义词
elasticsearch 使用同义词 使用环境 elasticsearch5.1.1 kibana5.1.1 同义词插件5.1.1 安装插件 下载对应的elasticsearch-analysis- ...
- java集合源码分析(三):ArrayList
概述 在前文:java集合源码分析(二):List与AbstractList 和 java集合源码分析(一):Collection 与 AbstractCollection 中,我们大致了解了从 Co ...
- 最佳置换算法OPT
原文链接:https://www.jianshu.com/p/544ee20e307c
- 区块链学习7:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名
☞ ░ 前往老猿Python博文目录 ░ 在Hyperledger Fabric区块链中,有背书节点进行背书,Hyperledger Fabric 使用背书策略来定义哪些节点需要执行交易. Hyper ...
- 转:解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别
解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别 标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD ...
- 第8.23节 Python中使用sort/sorted排序与“富比较”方法的关系分析
一. 引言 <第8.21节 Python中__lt__.gt__等 "富比较"("rich comparison")方法用途探究>和<第8.2 ...
- 第15.7节 PyQt入门学习:PyQt5应用构建详细过程介绍
一. 引言 在上节<第15.6节 PyQt5安装与配置>结束了PyQt5的安装和配置过程,本节将编写一个简单的PyQt5应用,介绍基本的PyQt5应用的文件组成及相关工具的使用. 本节的应 ...