excel模板利用java自动生成hive建表语句、查询语句小程序

在日常数据开发过程中,会经常需要根据数据模型写建表语句,或者在表数据探索时写查询语句,每次写建表语句都会用几分钟的时间,于是打算做个excel模板,把表字段、表分区、表名写在里面,通过程序自动生成建表语句、查询语句。
我的上传资源有打包好的程序,如果嫌麻烦可以直接下载使用。链接:https://download.csdn.net/download/tanhaidi/12058208
下面说一下具体步骤:
(1)定制excel模板
在这里插入图片描述
A到C列是字段名,D到F列是分区列,H1是表英文名,H2是表中文名。
文档另存为Excel97-2003工作簿,因为java中使用了jx.jar包,对excel版本有限制。
(2)编写生成语句脚本,java版本1.7
附上代码:

package cn.com.tanhaidi;

import java.io.File;
import java.io.PrintWriter;

import jxl.Sheet;
import jxl.Workbook;

public class CreateHiveTableDemo {
   

	public static void main(String[] args) throws Exception {
   
		// TODO Auto-generated method stub
		// File file = new File("D:\\javaworkspace\\project1\\src\\abcd.xls");
		File file = new File("./建表语句模板.xls");
		Workbook wb = Workbook.getWorkbook(file);
		Sheet sheet = wb.getSheet(0);

        String createstr = createstatement(sheet) ; 
        String selectstr = selectstatement(sheet) ; 
 
        String result = createstr + selectstr ; 
		System.out.println(result);
//		PrintWriter writer = new PrintWriter("D:\\javaworkspace\\project1\\src\\result.txt") ; 
//		PrintWriter writer = new PrintWriter(new File("/javaworkspace/result.txt").getAbsolutePath()) ; 
		PrintWriter writer = new PrintWriter("./result.sql") ; 
		writer.write(result);
		writer.close(); 
	//	System.out.println(new File("a").getAbsolutePath().toString());
		

	}
	
	// 生成建表语句的方法
	public static String createstatement(Sheet sheet){
   
		StringBuffer bodysb = new StringBuffer(); // 建表语句的表头
		StringBuffer fldsb = new StringBuffer(); // 字段部分
		StringBuffer commentsb = new StringBuffer(); // 表中文名
		StringBuffer partitionsb = new StringBuffer(); // 分区字段部分
		bodysb.append("建表语句: \r\n\r\ncreate table ");
		partitionsb.append("partitioned by (\r\n") ;
		
		
		bodysb.append(sheet.getCell(7, 0).getContents());
		// 表头部分
		bodysb.append(" (\r\n");
		// System.out.println(bodysb);
		// 表中文名
		commentsb.append("\r\ncomment '" 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值