最近经常有人需求要把我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相关推荐

  1. python办公自动化之批量生成docx——根据excel生成word、根据word生成excel

    python办公自动化之批量生成docx--根据excel生成word 系列文章 本文目录 一.从excel读取 二.写入docx 三.批量生成docx 四.反向操作,根据word生成excel 系列 ...

  2. JAVA实现PDF和EXCEL生成和数据动态插入以及导出

    作者:Tom-shushu www.cnblogs.com/Tom-shushu/p/14 一.序言 Excel.PDF的导出.导入是我们工作中经常遇到的一个问题,刚好今天公司业务遇到了这个问题,顺便 ...

  3. java解析excel生成sql文件

    序:需求是往数据库批量造测试数据.数量较多.用代码直接生成sql文件会省很多事. 注.引包:poi.jar系列引入即可. package demo;import java.io.File; impor ...

  4. 在线Excel转SQL工具

    在线Excel转SQL工具 在线Excel转SQL工具 Excel To SQL Converter 帮助你在线将 excel 文件转换为 SQL 查询. Excel To SQL Converter ...

  5. 【Java与Python实现】最实际与高效生成数据库高级声明式SQL脚本神器研发

    一. 简介 1.1前言 1.2作用 二. 实现方式与原理 2.1实现方式 2.2原理 三. 体系与图解 3.1创建表与插数据脚本 3.2添加或修改表脚本 3.3删除表脚本 3.4删除与创建索引脚本 3 ...

  6. Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?

    昨天在群里看到有小伙伴问,Java里如何解析SQL语句然后格式化SQL,是否有现成类库可以使用? 之前TJ没有做过这类需求,所以去研究了一下,并找到了一个不过的解决方案,今天推荐给大家,如果您正要做类 ...

  7. java 生成mysql dto_如何根据动态SQL代码自动生成DTO

    当前的状况 一般做数据库相关开发, 除非学习, 否则很少有人愿意直接使用JDBC.本来Java代码就比较啰嗦了,而直接用JDBC写代码之啰嗦简直有些令人发狂!所以在实际开发过程中,我们通常都会使用一些 ...

  8. java指定sql生成xml_通过generate解析SQL日志生成xml进行SQL回放

    1)设置Oracle数据字典导出路径参数(可选) shutdown immediate alter system set UTL_FILE_DIR='/opt/oracle/utl' scope=sp ...

  9. java excel生成_java操作excel表,包括创建、读取、以及修改【via 度娘】

    作者的网站上对它的特征有如下描述: ● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体.数字.日期操作 ● 能够修饰单元格属性 ● 支持图像和图表 应该说 ...

  10. Java实现pdf和Excel的生成及数据动态插入、导出

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:慢时光 cnblogs.com/Tom-shushu/ ...

最新文章

  1. 从农场女孩到首位图灵奖女性获得者,回顾法兰西斯·艾伦的辉煌一生
  2. saltstack之(一)系统环境及本地yum源
  3. Java编程时部分快捷键
  4. restful api与传统api的区别(方式及语法)
  5. RPC 和 RESTful
  6. 批量获取域名解析地址socketthread
  7. bash的一些小技巧
  8. ​win7下安装sourcetree
  9. 漫画:唐玄奘教你横扫 AVL 树面试题无敌手!
  10. HtmlCleaner CleanerProperties 参数配置(转自macken博客,链接:http://macken.iteye.com/blog/1579809)...
  11. 处理CoreAVC Professional Edition 错误的方法
  12. Ubuntu常识学习之tty
  13. 赛灵思计算平台ACAP技术细节全揭秘
  14. 股权的秘密:如何把握公司的控制权
  15. android 程序数据目录,Android APP 数据存放目录
  16. Minecraft 1.12.2模组开发(十八) 自定义附魔
  17. EasyExcel 实践与源码梳理
  18. ROS分布式多机通信
  19. 全面认识高并发:高性能、高可用、高扩展
  20. guidata handles理解

热门文章

  1. 懒狗日记(随缘更新)
  2. MOF (Meta Object Facility) 规范
  3. vscode中vue项目,QRCode二维码生成
  4. python程序化交易实例-python程序化交易神器——tushare
  5. css选择器权重与优先级
  6. 前后端分离:使用 mest 做契约测试跟踪 API 接口变更
  7. CMD命令窗口,我常用的命令
  8. 人人都是极客半月刊:第 1 期
  9. Unity中制作自定义字体的两种方式
  10. ubuntu11.04编译TQ2440 Qt2.2.0 成功