【发布时间】:2014-06-15 07:42:05
【问题描述】:
我正在尝试从本地目录读取 .csv 文件并将值插入 Mysql 数据库。请向我推荐任何使用 Mulesoft 的示例。
【问题讨论】:
-
抱歉,这个 mulesoft 是新手,我正在尝试使用文件进行数据库插入示例。
标签: mysql database mule mule-studio
我正在尝试从本地目录读取 .csv 文件并将值插入 Mysql 数据库。请向我推荐任何使用 Mulesoft 的示例。
【问题讨论】:
标签: mysql database mule mule-studio
你使用这个流程
<flow name="apdev-americanFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/flights"
doc:name="HTTP"/>
<db:select config-ref="MySQL_Configuration" doc:name="Database">
<db:parameterized-query><![CDATA[SELECT *
FROM american]]></db:parameterized-query>
</db:select>
<dw:transform-message doc:name="Transform Message"
metadata:id="6aa1324d-4ae4-4a42-9aeb-18da081f5cb1">
<dw:input-payload doc:sample="sample_data\list_map.dwl"/>
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload map ((payload01 , indexOfPayload01) -> {
ID: payload01.ID,
code: payload01.code1 ++ payload01.code2,
price: payload01.price as :number,
departureDate: payload01.takeOffDate as :string,
destination: payload01.toAirport,
emptySeats: payload01.seatsAvailable as :number,
plane: {
type: payload01.planeType,
totalSeats: payload01.totalSeats as :number
}
})]]></dw:set-payload>
</dw:transform-message>
</flow>
【讨论】:
我已尝试实施此方案。但最终得到了别的东西。看看对你有没有帮助。
<flow name="WriteToDB">
<file:inbound-endpoint path="${file_path}" moveToPattern="#[StringUtils.substringBeforeLast(message.inboundProperties.originalFilename,".txt")].bkp" moveToDirectory="${file_path}" connector-ref="FileRead" pollingFrequency="30000" responseTimeout="10000" doc:name="File">
<file:filename-regex-filter pattern=".*\.txt$" caseSensitive="true"/>
</file:inbound-endpoint>
<object-to-string-transformer doc:name="Object to String"/>
<logger message="Starting Split--------#[StringUtils.substringBeforeLast(message.inboundProperties.originalFilename,".txt")].bkp ----#[message.inboundProperties.originalFilename]" level="INFO" doc:name="Logger"/>
<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter"/>
<expression-component doc:name="Expression"><![CDATA[#[StringUtils.split(message.payload, '\n\r')]]]></expression-component>
<logger message="Split done #[message.payload]" level="INFO" doc:name="Logger"/>
</flow>
【讨论】:
将 CSV 插入数据库:
How to read CSV file and insert data into PostgreSQL using Mule ESB, Mule Studio
配置 MySQL:
http://blogs.mulesoft.org/working-with-databases-jdbc-in-mule-studio/
如果您在流的中间读取文件,则可以使用带有mulerequester:request 的请求者模块,如下例所示:
【讨论】: