java 生成sql,java excel生成sql
最近经常有人需求要把我excel 导入生产数据库oracle,其实dba最烦的就是用户从前台页面看上去很简单的数据结构,以为按页面的格式提供excel就可以轻松要求你迅速导入,熟不知页面显示后台所关联好多表时,哪有那么容易,其实导入方法很多,sqlldr、外部表、透明网关或用第三方导入建个临时表
那样做也最少要两步完成不是么?如果还经常性的怎么办呢?以前有人问我怎么学数据库,我个人认为就是用你全部的智慧让复杂的工作简单化,不知道不觉就锻炼了你的水平,昨晚上有时间,捡起只剩下概念的java,最终目标是要实现我这个需求,os下一条command 自动实现,平时太忙,手又生,以下是先实现的第一步,把excel里的数据动态生成sql,有很多不足的地方,希望老鸟指正
———-建一个exceltooracle.java的文件,代码如下—————
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import jxl.*;
public class exceltooracle {
public static void main(String args[]) {
copyright();
if(args.length<1) {
System.out.println("error-001:输入格式错误!");
System.out.println("for Example: java exceltooracle c:\\aa\\dd\\aa.xls");
System.exit(-1);
}
exceltooracle t = new exceltooracle();
String efile = "未初始化";
efile=args[0].toString();
efile=efile.endsWith("xls")?efile:efile+".xls";
t.reade(null, efile);
}
public void reade(String tns, String filepath) {
try {
InputStream is = new FileInputStream(filepath);
jxl.Workbook rwb = Workbook.getWorkbook(is);
int sheets = rwb.getNumberOfSheets();
Sheet rs = rwb.getSheet(0);
String rsname = rs.getName();
int columns = rs.getColumns();
int rows = rs.getRows();
String sqlstr = "";
String c;
System.out.println("info:");
System.out.println("This file:"+filepath+" have " + sheets
+ " sheets,now reloading the first sheet only!");
System.out.println(rsname + " reloading...");
System.out.println("This sheet have " + columns
+ " columns,and have " + rows + " rows");
System.out.println("Create Table sql:");
System.out.println("----------------------------");
sqlstr = "create table anbob (";
for (int j = 0; j < columns; j++) {
sqlstr += "id" + j + " varchar2(100)";
if (j < columns - 1)
sqlstr += ",";
}
sqlstr += ");";
System.out.println(sqlstr);
/*
* for (int i = 1; i < rows; i++) { for (int j = 0; j < columns;
* j++) { System.out.print(rs.getCell(j, i).getContents() + "|"); }
* System.out.println(); }
*/
System.out.println("Insert table sql:");
System.out.println("------------------------------");
for (int i = 1; i < rows; i++) {
sqlstr = "insert into anbob values(";
for (int j = 0; j < columns; j++) {
c = rs.getCell(j, i).getContents();
if ("" == c)
c = "null";
sqlstr += c;
if (j < columns - 1)
sqlstr += ",";
}
sqlstr += ");";
System.out.println(sqlstr);
}
rwb.close();
} catch (FileNotFoundException notfound) {
System.out
.println("error-002:Excel file not exists or not XLS type file !please input a real path");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void copyright(){
System.out.println("ExcelToOracle java 0.1.0.1"+"\n"+"-------------------------");
System.out.println("Copyright www.anbob.com"+"\n"+"qq:397464815");
}
}
第二步去网上下一个ibm的API,jxl.jar文件很小,这个好像很老,昨开发的同事说可以看看apache 的poi,我是用jxl,ibm官网有下,csdn也有。下载后编译前,要把这个jar加入clashpath否则编绎不通过
比如你下载jxl在D:下,可以加到环境变量里或临时cmd下 >set classpath=d:\jxl.ar;%classpath%
classpath这个开发的应该都知道,不过上手就用eclipse IDE一辈子不通也不怪你
第三步如果机器有jdk,而不是jre,编译java文件 cmd >javac d:\xxxx\exceltooracle.java,如果没有任何提示,恭喜通过了
下面我共享一个我编译好的,下载后只需要设置环境变量有装jre就可操作
cmd>java exceltooracle excelfile路径
如java exceltooracle d:\aa.xls or java exceltooracle d:\aa
提示只支持excel 2003以前版本.toad好像也不支持 2007以后
打赏
微信扫一扫,打赏作者吧~
java 生成sql,java excel生成sql相关推荐
- python办公自动化之批量生成docx——根据excel生成word、根据word生成excel
python办公自动化之批量生成docx--根据excel生成word 系列文章 本文目录 一.从excel读取 二.写入docx 三.批量生成docx 四.反向操作,根据word生成excel 系列 ...
- JAVA实现PDF和EXCEL生成和数据动态插入以及导出
作者:Tom-shushu www.cnblogs.com/Tom-shushu/p/14 一.序言 Excel.PDF的导出.导入是我们工作中经常遇到的一个问题,刚好今天公司业务遇到了这个问题,顺便 ...
- java解析excel生成sql文件
序:需求是往数据库批量造测试数据.数量较多.用代码直接生成sql文件会省很多事. 注.引包:poi.jar系列引入即可. package demo;import java.io.File; impor ...
- 在线Excel转SQL工具
在线Excel转SQL工具 在线Excel转SQL工具 Excel To SQL Converter 帮助你在线将 excel 文件转换为 SQL 查询. Excel To SQL Converter ...
- 【Java与Python实现】最实际与高效生成数据库高级声明式SQL脚本神器研发
一. 简介 1.1前言 1.2作用 二. 实现方式与原理 2.1实现方式 2.2原理 三. 体系与图解 3.1创建表与插数据脚本 3.2添加或修改表脚本 3.3删除表脚本 3.4删除与创建索引脚本 3 ...
- Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?
昨天在群里看到有小伙伴问,Java里如何解析SQL语句然后格式化SQL,是否有现成类库可以使用? 之前TJ没有做过这类需求,所以去研究了一下,并找到了一个不过的解决方案,今天推荐给大家,如果您正要做类 ...
- java 生成mysql dto_如何根据动态SQL代码自动生成DTO
当前的状况 一般做数据库相关开发, 除非学习, 否则很少有人愿意直接使用JDBC.本来Java代码就比较啰嗦了,而直接用JDBC写代码之啰嗦简直有些令人发狂!所以在实际开发过程中,我们通常都会使用一些 ...
- java指定sql生成xml_通过generate解析SQL日志生成xml进行SQL回放
1)设置Oracle数据字典导出路径参数(可选) shutdown immediate alter system set UTL_FILE_DIR='/opt/oracle/utl' scope=sp ...
- java excel生成_java操作excel表,包括创建、读取、以及修改【via 度娘】
作者的网站上对它的特征有如下描述: ● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体.数字.日期操作 ● 能够修饰单元格属性 ● 支持图像和图表 应该说 ...
- Java实现pdf和Excel的生成及数据动态插入、导出
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:慢时光 cnblogs.com/Tom-shushu/ ...
最新文章
- 从农场女孩到首位图灵奖女性获得者,回顾法兰西斯·艾伦的辉煌一生
- saltstack之(一)系统环境及本地yum源
- Java编程时部分快捷键
- restful api与传统api的区别(方式及语法)
- RPC 和 RESTful
- 批量获取域名解析地址socketthread
- bash的一些小技巧
- ​win7下安装sourcetree
- 漫画:唐玄奘教你横扫 AVL 树面试题无敌手!
- HtmlCleaner CleanerProperties 参数配置(转自macken博客,链接:http://macken.iteye.com/blog/1579809)...
- 处理CoreAVC Professional Edition 错误的方法
- Ubuntu常识学习之tty
- 赛灵思计算平台ACAP技术细节全揭秘
- 股权的秘密:如何把握公司的控制权
- android 程序数据目录,Android APP 数据存放目录
- Minecraft 1.12.2模组开发(十八) 自定义附魔
- EasyExcel 实践与源码梳理
- ROS分布式多机通信
- 全面认识高并发:高性能、高可用、高扩展
- guidata handles理解