首页 > 代码库 > 利用kettle组件导入excel文件到数据库

利用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

 

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