Home  >  Article  >  Database  >  利用kettle组件导入excel文件到数据库

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

WBOY
WBOYOriginal
2016-06-07 16:10:242444browse

利用kettle组件导入excel文件到数据库 1. 实现目标 把excel文件内容导入到目标表中;然后用java调用kettle的转换。excel文件的内容只有两列,示例如下: 数据库表的结构如下: vcD4KCjxoMz4yLiAgICAgyei8xrfWzvY8L2gzPgoKPHVsPgo8bGk+CjxwPgrKudPDb3JhY2xluq/

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

1. 实现目标

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

\

数据库表的结构如下:

\

喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxoMz4yLiAgICAgyei8xrfWzvY8L2gzPgoKPHVsPgo8bGk+CjxwPgrKudPDb3JhY2xluq/K/b3ivvbJz828u8bJq9DQtcTX1rbOo7rBvbj2dXVpZLrNwb249s+1zbPI1cbao7s8L3A+CgoKPHA+0OjSqsn6s8l1dWlko6zV4rj21NpvcmFjbGXW0L/J0tTA+9PDU1lTX1VVSUQoKbqvyv3Ktc/Wo7s8L3A+Cgo8cCBhbGlnbj0="left">需要生成当前时间作为创建时间和修改时间,使用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步骤,打开配置对话框:

          \

          \

          \

          • 配置数据库连接

            记得把oracle的jdbc驱动加到kettle的lib目录中,可以测试连接。

            \

            • 配置执行sql脚步步骤

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

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

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

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

              \

              3.3. 配置参数

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

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

              \

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

              4. 在java调用转换

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn