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

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

      

1.     实现目标

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

       数据库表的结构如下:

 

2.     设计分析

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

需要生成uuid,这个在oracle中可以利用SYS_UUID()函数实现;

需要生成当前时间作为创建时间和修改时间,使用oracleto_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步骤,打开配置对话框:

  • 配置数据库连接

记得把oraclejdbc驱动加到kettlelib目录中,可以测试连接。

  • 配置执行sql脚步步骤

双击该步骤打开配置,首先选择前面配置的数据库连接,然后写insert语句。需要注意的是字符类型要用引号括起来,即使是变量或?都需要括起来。

问号的内容需要在parameters中配置对应的流字段;

因为需要执行多行,需要选中Execute for each row 选项;

因为有变量,需要选中Variable substutution选项;

3.3.            配置参数

前面分析了需要四个参数,分别在两个步骤使用到了,所以需要给转换配置四个命名参数:       USER_IDORG_IDFILE_IDFILE_NAME

双击工作区空白部分打开转换配置,输入相应的参数,也可以添加默认值,用于在kettle中进行测试使用,直到测试没有错误。

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

4.     java调用转换

调用之前,需要准备上述四个参数的内容,然后把参数传给转换执行;详细内容参考这篇博客文章:

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。