利用kettle组件导入excel文件到数据库

1.     实现目标

把excel文件内容导入到目标表中;然后用java调用kettle的转换。excel文件的内容仅仅有两列,示比例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

数据库表的结构例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

2.     设计分析

  • 使用oracle函数解决上图黄色行的字段:两个uuid和两个系统日期;

须要生成uuid,这个在oracle中能够利用SYS_UUID()函数实现;

须要生成当前时间作为创建时间和改动时间,使用oracle的to_char(sysdate,’yyyy-MM-dd hh:mm:ss’)实现。

  • 使用命名參数解决蓝色行字段

创建人及改动人的ID(两者一致)、组织ID、来源文件的ID;分别使用命名參数:

${USER_ID}、${ORG_ID}、${FILE_ID}、${FILE_NAME};

当中文件名是读取excel步骤要使用的;

  • 使用excel行内容作为绿色行的值

即企业名称和组织机构代码两个字段;

  • 使用默认值作为白色行的值

3.     设计kettle的转换文件

使用excel输入步骤读取excel内容,使用运行sql脚步步骤把记录插入数据表中。

3.1.            设计步骤

从输入类别中拖动excel input步骤到工作区,从脚步类别中拖动运行sql
脚步到工作区。按shift键。从excel input步骤连接到sql脚步步骤。例如以下图:

3.2.            配置步骤

  • 配置excel步骤

双击excel步骤,打开配置对话框:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

  • 配置数据库连接

记得把oracle的jdbc驱动加到kettle的lib文件夹中。能够測试连接。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

  • 配置运行sql脚步步骤

双击该步骤打开配置。首先选择前面配置的数据库连接。然后写insert语句。

须要注意的是字符类型要用引號括起来,即使是变量或?都须要括起来。

问号的内容须要在parameters中配置相应的流字段。

由于须要运行多行,须要选中Execute for each row
选项;

由于有变量,须要选中Variable substutution选项;

3.3.            配置參数

前面分析了须要四个參数,分别在两个步骤使用到了。所以须要给转换配置四个命名參数:      
USER_ID、ORG_ID、FILE_ID、FILE_NAME;

双击工作区空白部分打开转换配置。输入对应的參数,也能够加入默认值,用于在kettle中进行測试使用,直到測试没有错误。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

至此,在kettle的设计工作已经做完。大家能够參考这篇博客文章,关于动态查询的具体说明。地址:http://blog.csdn.net/neweastsun/article/details/39287809

4.     在java调用转换

调用之前,须要准备上述四个參数的内容,然后把參数传给转换运行。具体内容參考这篇博客文章:

http://blog.csdn.net/neweastsun/article/details/40886841

利用kettle组件导入excel文件到数据库的更多相关文章

  1. Java 导入Excel文件到数据库

    原文:http://www.jb51.net/article/44021.htm 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两 ...

  2. Apache POI 一键上传(导入excel文件到数据库)

    import cn.XXXX.bos.utils.PinYin4jUtils; import org.apache.commons.lang3.StringUtils; // HSSF:操作07版本之 ...

  3. springMVC(5)---导入excel文件数据到数据库

    springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...

  4. 【转】 如何导入excel数据到数据库,并解决导入时间格式问题

    在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...

  5. Spring Boot下的一种导入Excel文件的代码框架

    1.前言 ​ Spring Boot下如果只是导入一个简单的Excel文件,是容易的.网上类似的文章不少,有的针对具体的实体类,代码可重用性不高:有的利用反射机制或自定义注解,开发了Excel导入工具 ...

  6. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  7. phpexcel导入excel文件报the filename xxx is not recognised as an OLE file错误。

    工作中频繁会用phpexcel类导入excel文件的数据到数据库,目前常用的excel文件格式有:xls.csv.xlsx. 刚开始,针对xls文件,使用如下程序,能正常运行: $objReader ...

  8. excel数据 入库mysql 和 mysql数据 导入excel文件

    1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应ex ...

  9. java后端导入excel模板和导入excel文件去读数据

    模板转载地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上代码(我是基于ssm写的demo,导入文件目前只能读取.xls后缀的exce ...

随机推荐

  1. requests(二): json请求中固定键名顺序&消除键和值之间的空格

    继上一篇requests发送json请求的文章后,实际工作中遇到了以下2种情况. 1:服务端要求json字符串,键名的顺序固定  2.服务端对于接收到的json数据中,若key和value之间有空格, ...

  2. csfb

    SELECT CSDBTOGSMALLSuccessRate,CSFBTOGSMMODelay,CSFBTOGSMMODropRate,CSFBTOGSMMOFRStartCount,CSFBTOGS ...

  3. [SDOI2009]HH去散步 「矩阵乘法计数」

    计数问题也许可以转化为矩阵乘法形式 比如若该题没有不能在一条边上重复走的条件限制,那么直接将邻接矩阵转化为矩阵乘法即可 故 矩阵乘法计数 对于计数问题,若可以将 \(n\) 个点表示成 \(n \ti ...

  4. crontab机会任务监控

    <1>如何查看自己的计划任务是否成功的执行? 昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang ...

  5. 推荐一些socket工具,TCP、UDP调试、抓包工具 (转载)

    还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...

  6. java 内部类 工厂方法

    用内部类实现工厂模式 :优先使用类而不是接口,如果你的设计中需要某个接口,你必须了解它,否则不到迫不得已,不要将其放到你的类中 //: innerclasses/Factories.java impo ...

  7. Windows环境下python的安装与使用

    Windows环境下python的安装与使用 一.python如何运行程序 首先说一下python解释器,它是一种让其他程序运行起来的程序.当你编写了一段python程序,python解释器将读取程序 ...

  8. Java编程的逻辑 (21) - 内部类的本质

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  9. NET WebAPi之断点续传下载(下)

    NET WebAPi之断点续传下载(下) 前言 上一篇我们穿插了C#的内容,本篇我们继续来讲讲webapi中断点续传的其他情况以及利用webclient来实现断点续传,至此关于webapi断点续传下载 ...

  10. spark streaming限制吞吐

    使用spark.streaming.receiver.maxRate这个属性限制每秒的最大吞吐.官方文档如下: Maximum rate (number of records per second) ...