`
longgangbai
  • 浏览: 7338857 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mule ESB 学习笔记(13)CSV数据文件到数据库

阅读更多

  简单需求:       

             在应用中需要数据从一个数据库传输到另一个数据库的(数据库类型不一样),将数据转换为csv文件,再从csv文件insert到数据库的操作的具体实现:

 

mule-jdbc-csv-load.xml

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:jdbc-ee="http://www.mulesoft.org/schema/mule/ee/jdbc" xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:file="http://www.mulesoft.org/schema/mule/file"
      xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
      xmlns:spring="http://www.springframework.org/schema/beans"
      xsi:schemaLocation="           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd           http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd           http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd           http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd           http://www.mulesoft.org/schema/mule/ee/jdbc http://www.mulesoft.org/schema/mule/ee/jdbc/current/mule-jdbc-ee.xsd">
    <spring:bean id="property-placeholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
        <spring:property name="location" value="classpath:db.properties"></spring:property>  
    </spring:bean>
    
    <spring:bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > 
        <spring:property name="driverClassName" value="${database.driverClassName}"></spring:property>  
        <spring:property name="url" value="${database.url}"></spring:property>  
        <spring:property name="username" value="${database.username}"></spring:property>  
        <spring:property name="password" value="${database.password}"></spring:property>  
    </spring:bean>
    
    <jdbc-ee:connector name="jdbcConnector" dataSource-ref="jdbcDataSource"> 
        <jdbc-ee:query key="commitLoadedMules" value="insert into mule_source 
            (ID, MULE_NAME, RANCH, COLOR, WEIGHT, AGE) 
            values 
            (#[map-payload:ID], #[map-payload:MULE_NAME], #[map-payload:RANCH], #[map-payload:COLOR], #[map-payload:WEIGHT], #[map-payload:AGE])"></jdbc-ee:query>  
    </jdbc-ee:connector>
    <file:connector name="fileConnector" autoDelete="false" pollingFrequency="100000000"></file:connector>
    <file:endpoint  path="/E:/upload/data/"  moveToDirectory="/e:/download/data/" name="get" pollingFrequency="2000" connector-ref="fileConnector"></file:endpoint>
    <jdbc-ee:csv-to-maps-transformer name="CSV2Maps" delimiter="," mappingFile="mules-csv-format.xml" ignoreFirstRecord="true"></jdbc-ee:csv-to-maps-transformer>
    <model name="LoaderModel"> 
        <service name="CSVLoader"> 
            <inbound> 
                <file:inbound-endpoint ref="get" transformer-refs="CSV2Maps"> 
                    <file:filename-wildcard-filter pattern="*.csv"></file:filename-wildcard-filter>  
                </file:inbound-endpoint>  
            </inbound>  
            <echo-component></echo-component>  
            <outbound> 
                <pass-through-router> 
                    <jdbc-ee:outbound-endpoint queryKey="commitLoadedMules"></jdbc-ee:outbound-endpoint>  
                </pass-through-router>  
            </outbound>  
        </service>  
    </model>

    <!-- Long pollingFrequency so that this operations runs only once -->
</mule>

 

 

格式化文件:

mules-csv-format.xml

 

 

 

<?xml version='1.0'?>
<!-- DTD can be pulled from the Jar or over the web-->
<!DOCTYPE PZMAP SYSTEM  "pzfilereader.dtd" >
<!--<!DOCTYPE PZMAP SYSTEM  "http://pzfilereader.sourceforge.net/pzfilereader.dtd" >-->
<PZMAP>
    <RECORD id="header" indicator="H" elementNumber="1">
        <COLUMN name="RECORDINDICATOR" />
        <COLUMN name="HEADERDATA" />
    </RECORD>
    <COLUMN name="ID" />
    <COLUMN name="MULE_NAME" />
    <COLUMN name="RANCH" />
    <COLUMN name="COLOR" />
    <COLUMN name="WEIGHT" />
    <COLUMN name="AGE" />
    <RECORD id="trailer" indicator="T" elementNumber="1">
        <COLUMN name="RECORDINDICATOR" />
        <COLUMN name="TRAILERDATA" />
    </RECORD>
</PZMAP> 

 

测试代码:

package com.easyway;

import org.mule.api.MuleContext;
import org.mule.api.context.MuleContextFactory;
import org.mule.config.spring.SpringXmlConfigurationBuilder;
import org.mule.context.DefaultMuleContextFactory;
public class Main {
	public static void main(String[] args) {
		 try {
	            String configFile = "mule-jdbc-csv-load.xml";
	            String[] configFileArr = new String[] {configFile };
	            MuleContextFactory muleContextFactory = new DefaultMuleContextFactory();
	            MuleContext muleContext = muleContextFactory
	                    .createMuleContext(new SpringXmlConfigurationBuilder(configFileArr));
	            muleContext.start();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	}

}

 

数据文件看附件:

分享到:
评论
2 楼 U_RON 2015-03-05  
在使用mule 3.6 从ftp 下载文件在用file 保存到本地,发现中文文件名编程了乱码,你遇到这样的问题吗?
1 楼 elvenpath 2014-06-19  
请问这个csv是怎么生成的,用mule从数据库中取出的数据,该怎么在datamapper中处理成pojo

相关推荐

    mule -esb 源码

    `proxy.properties`则可能涉及到网络代理设置,如果Mule ESB需要通过代理服务器访问外部资源,此文件会包含代理的相关配置。 最后,`MULE_LICENSE.txt`是Mule ESB的许可协议文件,它详细阐述了软件的使用条款和条件...

    Mule ESB手册-中文版

    根据提供的文件内容,以下是关于Mule ESB手册-中文版的知识点: 1. Mule ESB简介 Mule ESB(Enterprise Service Bus)是MuleSoft公司开发的一款企业服务总线产品,它允许企业内部和不同企业之间的服务进行集成,...

    MULE ESB-4.1企业版运行环境

    当您在AnyPoint Studio中完成项目开发后,通常会导出一个包含所有必要依赖的zip文件,这个文件可以被放置到MULE ESB的“apps”目录下,以便于部署和运行。 在本环境中,关键知识点包括: 1. **MULE ESB架构**:...

    ESB原理及Mule ESB实践

    ### ESB原理及Mule ESB实践 #### ESB(Enterprise Service Bus)原理概述 **ESB**(企业服务总线)是SOA(面向服务架构)架构中的关键组件之一,用于实现服务间的智能集成与管理。其核心作用在于简化不同系统间的...

    MuleESB_3.0_中文教程

    3. **数据转换**:Mule ESB支持多种数据格式的转换,包括XML、JSON、CSV等,确保数据在不同系统间顺畅传递。 **三、Mule ESB 3.0新特性** 1. **改进的性能**:Mule ESB 3.0对引擎进行了优化,提升了处理速度和吞吐...

    mule IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...

    MuleESB帮助文档

    五、学习和使用Mule ESB "MuleESB3"这个文件名可能指的是Mule ESB的第三个主要版本。在该版本中,用户可以期待更完善的特性和改进。对于初学者,建议首先通过官方文档了解Mule ESB的基本概念和工作原理,然后使用Any...

    MuleEsb开源框架简介.pdf

    Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、Web Services、JDBC、...

    mule esb 项目 例子 入门

    例如,我们可以创建一个简单的例子,其中Mule ESB接收一个HTTP请求,提取请求体中的JSON数据,将其转换为XML,然后存储到数据库中。这个过程中,我们将涉及到HTTP Inbound Endpoint、DataWeave Transformer(用于...

    mule esb开发手册

    端点配置涉及确定消息的来源和去向,例如,可以从数据库、文件系统、Web 服务或其他 Mule 应用程序中读取或写入数据。Mule 支持多种端点类型,包括 JMS、HTTP、FTP、SFTP、SMTP 等。 ### 连接云服务 Mule ESB 提供...

    MULE ESB-4.1社区办运行环境

    MULE ESB-4.1社区版是Mulesoft为开发者提供的免费版本,它包含了基本的ESB功能,适合学习、开发和小规模项目部署。 在MULE ESB-4.1社区版中,主要包含以下几个关键组件和概念: 1. **AnyPoint Studio**: AnyPoint ...

    MuleESB3.0中文教程

    ### MuleESB3.0中文教程知识点梳理 #### 一、Mule ESB 3.0概述 - **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise ...

    mule esb cookbook 随书源码

    通过这个源码库,读者可以实际操作这些示例,加深对Mule ESB工作原理的理解,学习如何解决实际问题,从而提升在企业集成项目中的技能。记住,理论知识和实践经验相结合是掌握复杂技术的关键。因此,仔细研究这些源码...

    mule esb 的简单介绍

    Mule ESB,全称Mule Enterprise Service Bus,是一个开源的企业服务总线系统,旨在促进不同应用程序和服务之间的数据交换和集成。Mule的核心设计是基于轻量级的Java平台,尤其是J2EE 1.4标准,使得它能够在各种企业...

    mule ESB 3 user guider

    总结来说,《Mule ESB 3用户指南》为用户提供了一个全面的、步骤详细的、实践导向的指导,从基础的配置、服务集成到开发、测试、文档编写和云服务集成,覆盖了使用Mule ESB进行企业级集成应用开发的各个阶段。

    MuleESB学习笔记

    MuleESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。MuleESB支持集成现有系统而无论其底层采用何种技术,如JMS、WebServices、JDBC、HTTP以及其他...

    Mule ESB开发工具以及相匹配的英文手册和中文手册(翻译狗充值翻译)

    Mule ESB的核心特性是轻量级、高性能和易用性,它允许开发者快速地连接各种应用、数据和服务,实现数据流动和业务流程自动化。 **Anypoint Studio - Mule ESB 的集成开发环境** Anypoint Studio 是 Mule ESB 的...

Global site tag (gtag.js) - Google Analytics