Mule esb를 사용하여 DB에 데이터 삽입

Venkat

나는 Rest api에서 데이터를 가져 왔습니다. Json 형식의 데이터를 얻은 다음 하나의 텍스트 파일에 넣습니다. 이제 DB에서 해당 파일 데이터를 시도합니다. 아래는 Mule flow의 XML 형식입니다.

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8082" doc:name="HTTP Listener Configuration"/>
    <http:request-config name="HTTP_Request_Configuration" host="$host" port="$port" doc:name="HTTP Request Configuration"/>
    <db:generic-config name="Generic_Database_Configuration" url="localDB Connection" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" doc:name="Generic Database Configuration"/>
    <file:connector name="File" autoDelete="true" streaming="true" validateConnections="true" doc:name="File"/>

    <flow name="Flowname">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/Customer" doc:name="HTTP" />
        <http:request config-ref="HTTP_Request_Configuration" path="/Services/Customers/api/2.0/search/{a}" method="GET" doc:name="HTTP">
            <http:request-builder>
                <http:uri-param paramName="a" value="s"/>
            </http:request-builder>
        </http:request>
        <file:outbound-endpoint path="D:\Docs" outputPattern="test.txt" responseTimeout="10000" doc:name="File"/>
        <json:json-to-object-transformer returnClass="java.util.HashMap" mimeType="text/plain" doc:name="JSON to Object"/>
        <logger message="#[message.payload]" level="INFO" doc:name="Logger"/>
        <set-payload value="#[message.payload.CustomerID],#[message.payload.Address],#[message.payload.DOB],#[message.payload.FirstName],#[message.payload.LastName],#[message.payload.MiddleName],#[message.payload.PhoneNo]" doc:name="Set Payload"/>
        <db:insert config-ref="Generic_Database_Configuration" doc:name="Database">
            <db:parameterized-query><![CDATA[INSERT INTO dbo.tblCustomer (Customerid,Address,Dob,Firstname,LastName,Middlename,Phoneno) VALUES (#[Message.payload.CustomerID],#[Message.payload.Address],#[Message.payload.DOB],#[Message.payload.FirstName],#[Message.payload.LastName],#[Message.payload.MiddleName],#[Message.payload.PhoneNo])]]></db:parameterized-query>
        </db:insert>
    </flow>
</mule>

이와 같은 서비스에서 데이터 가져 오기

[{
    "Address": "372 Willene Drive",
    "CustomerID": 1010007031,
    "DOB": "1981-09-19",
    "FirstName": "Aaliyah",
    "LastName": "Gonzalez",
    "MiddleName": "R",
    "PhoneNumber": "7775271592"
}, {
    "Address": null,
    "CustomerID": 1010007743,
    "DOB": "1937-05-28",
    "FirstName": "Aaron",
    "LastName": "Green",
    "MiddleName": "T",
    "PhoneNumber": "0924758727"
}, {
    "Address": "7 Country Lake Drive",
    "CustomerID": 1010004653,
    "DOB": "1936-03-07",
    "FirstName": "Aaron",
    "LastName": "Gutierrez",
    "MiddleName": "Q",
    "PhoneNumber": "9919500942"
}, {
    "Address": "157 Tamir Avenue",
    "CustomerID": 1010005851,
    "DOB": "1955-12-19",
    "FirstName": "Abigail",
    "LastName": "Garcia",
    "MiddleName": "G",
    "PhoneNumber": "4695049914"
}, {
    "Address": "5 Cross Road",
    "CustomerID": 1010007962,
    "DOB": "1939-07-23",
    "FirstName": "Abigail",
    "LastName": "Gomez",
    "MiddleName": "R",
    "PhoneNumber": "6267010014"
}]

이것에 대해 도와 주시겠습니까?

알렉스

나도 Mule을 배우는 중이고 수천 개의 질문이 있지만 귀하의 질문에 답할 수 있습니다.

흐름에 몇 가지 흐름이 있습니다. 한 번에 너무 많은 질문을합니다.

흐름은 다음과 같습니다 (주석을 위해 HTTP에 1/2을 추가했습니다) 여기에 이미지 설명 입력

첫 번째 문제는 3 개의 진입 점이 있다는 것입니다. 2 개의 HTTP 및 1 개의 파일. HTTP1은 하나의 http 호출을 기다립니다. HTTP2는 다른 것을 기다리며 둘 다 실제로 데이터를 얻는다고 가정하는 파일 구성 요소가 있기 때문에 아무것도하지 않습니다.

불필요한 HTTP를 제거하고 파일을 재구성하여 로컬 디렉토리에서 일부 파일을 가져 오자. HTTP에서 파일을 가져 오기 위해 흐름의 다른 부분을 추가 한 다음 (필요하지 않은 파일에 저장) 사용할 수 있습니다. DB에 데이터를 삽입하는 질문 주제에 맞지 않기 때문에 이것을 건너 뜁니다.

구성의 두 번째 문제는 JSON을 맵에 매핑한다는 것입니다. 배열이 있습니다. 자, 배열에 매핑 해 보겠습니다. 코드를 참조하십시오.

세 번째 문제는 하나의 레코드로 작동하는 Database Conector가 있지만 Arry에는 많은 레코드가 있다는 것입니다. 따라서 Array에 ForEach 루프를 사용하고 레코드를 하나씩 처리해 보겠습니다.

작동 함을 보여주기 위해 로거를 몇 개 더 추가했습니다.

여기에 자체 설명 흐름이 있습니다. 여기에 이미지 설명 입력

그리고 여기에 코드가 있습니다

    <?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
    <db:generic-config name="Generic_Database_Configuration" url="localDB Connection" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" doc:name="Generic Database Configuration"/>
    <file:connector name="File" autoDelete="true" streaming="true" validateConnections="true" doc:name="File"/>

    <flow name="Flowname">
        <file:inbound-endpoint path="C:\tmp" responseTimeout="10000" doc:name="FileIn">
            <file:filename-regex-filter pattern="text.txt" caseSensitive="true"/>
        </file:inbound-endpoint>

        <file:file-to-string-transformer doc:name="File to String"/>

        <json:json-to-object-transformer returnClass="java.util.ArrayList" mimeType="text/plain" doc:name="JSON to Object"/>
        <logger message="#[payload]" level="INFO" doc:name="Log Whole Payload"/>
        <foreach doc:name="For Each">
            <logger message="#[payload]" level="INFO" doc:name="Log one Record"/>
            <logger message="#[payload.Address] #[payload.CustomerID]" level="INFO" doc:name="Log two fields"/>
            <db:insert config-ref="Generic_Database_Configuration" doc:name="Database">
            <db:parameterized-query><![CDATA[INSERT INTO dbo.tblCustomer (Customerid,Address,Dob,Firstname,LastName,Middlename,Phoneno) VALUES (#[Message.payload.CustomerID],#[Message.payload.Address],#[Message.payload.DOB],#[Message.payload.FirstName],#[Message.payload.LastName],#[Message.payload.MiddleName],#[Message.payload.PhoneNo])]]></db:parameterized-query>

        </db:insert>
            <logger message="Record succesfull" level="INFO" doc:name="Log Success"/>

        </foreach>

    </flow>
</mule>

localDB 연결 을 실제 URL로 변경하십시오.

jdbc : sqlserver : // myserver : 1433; databaseName = myDB; user = myid; password = mypassword;

그리고 당신은 갈 수 있습니다.

응용 프로그램을 실행하십시오.

데이터 파일을 c : \ tmp \ text.txt에 복사합니다.

응용 프로그램은 파일을 가져 와서 문자열로 변환 (다음 파일을 준비하기 위해 파일 삭제), 문자열을 개체의 배열로 변환하고 각 개체 (행인 행)에 대해 로그하고, 두 개의 필드를 기록하고, 레코드를 저장하고, 로그 메시지를 만듭니다. 성공의.

그런 다음 응용 프로그램은 다른 text.txt가 진행될 때까지 기다립니다.

물론이 모든 단계가 필요하지는 않지만, 무슨 일이 일어나고 있는지, 언제, 무엇이 일어나고 있는지 느끼는 데 도움이됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java를 사용하여 Oracle db에 여러 데이터 삽입

분류에서Dev

mysql.connector를 사용하여 mysql db에 데이터 삽입

분류에서Dev

PHP 및 Java를 사용하여 iframe / textarea의 데이터를 db에 삽입

분류에서Dev

SQL 쿼리를 사용하여 DB2에 BLOB 데이터 삽입

분류에서Dev

Mule의 데이터베이스에 json 데이터를 동적으로 삽입하는 방법

분류에서Dev

LINQ를 사용하여 데이터베이스에 삽입

분류에서Dev

Java를 사용하여 테이블에 데이터 삽입

분류에서Dev

PHP를 사용하여 데이터베이스에 값 삽입

분류에서Dev

PHP를 사용하여 데이터베이스에 삽입-한 행만 삽입

분류에서Dev

Cassandra에서 Spark를 사용하여 데이터 삽입

분류에서Dev

aws-lambda를 사용하여 DynamoDB에 데이터 삽입

분류에서Dev

루프를 사용하여 mysql에 100000 데이터 삽입

분류에서Dev

Dapper를 사용하여 자식 개체에 데이터 삽입

분류에서Dev

load ()를 사용하여 필드에 데이터 삽입

분류에서Dev

PHP를 사용하여 MySQL에 데이터 선택 및 삽입

분류에서Dev

Android를 사용하여 Parse에 다중 데이터 삽입

분류에서Dev

LINQ를 사용하여 기존 XML에 XML 데이터 삽입

분류에서Dev

PHP를 사용하여 Javascript에서 MySQL로 데이터 삽입

분류에서Dev

robomongo를 사용하여 mongodb에 데이터 삽입 오류

분류에서Dev

청크를 사용하여 데이터베이스 Laravel에 데이터 삽입

분류에서Dev

Dart를 사용하여 Postgres 데이터베이스에 데이터 삽입

분류에서Dev

PHP를 사용하여 mysql 데이터베이스에 데이터 삽입

분류에서Dev

pdo를 사용하여 SQL Server DB에 이미지 삽입

분류에서Dev

직접 삽입 문으로 PDO를 사용하여 mysql 데이터베이스에 데이터 삽입

분류에서Dev

NpgSql에서 벌크 데이터 삽입을 위해 BeginBinaryImport를 사용하여 비트 데이터 유형 삽입

분류에서Dev

Opencart를 사용하여 데이터베이스에 사용자 지정 데이터를 삽입하는 방법

분류에서Dev

Entity Framework를 사용하여 데이터베이스에 데이터 테이블 데이터 삽입?

분류에서Dev

어떻게 DB에 삽입 데이터 JPA 쿼리를 사용 하는가?

분류에서Dev

업데이트 삽입 쿼리를 사용하여 .csv 값을 데이터베이스에 삽입

Related 관련 기사

  1. 1

    Java를 사용하여 Oracle db에 여러 데이터 삽입

  2. 2

    mysql.connector를 사용하여 mysql db에 데이터 삽입

  3. 3

    PHP 및 Java를 사용하여 iframe / textarea의 데이터를 db에 삽입

  4. 4

    SQL 쿼리를 사용하여 DB2에 BLOB 데이터 삽입

  5. 5

    Mule의 데이터베이스에 json 데이터를 동적으로 삽입하는 방법

  6. 6

    LINQ를 사용하여 데이터베이스에 삽입

  7. 7

    Java를 사용하여 테이블에 데이터 삽입

  8. 8

    PHP를 사용하여 데이터베이스에 값 삽입

  9. 9

    PHP를 사용하여 데이터베이스에 삽입-한 행만 삽입

  10. 10

    Cassandra에서 Spark를 사용하여 데이터 삽입

  11. 11

    aws-lambda를 사용하여 DynamoDB에 데이터 삽입

  12. 12

    루프를 사용하여 mysql에 100000 데이터 삽입

  13. 13

    Dapper를 사용하여 자식 개체에 데이터 삽입

  14. 14

    load ()를 사용하여 필드에 데이터 삽입

  15. 15

    PHP를 사용하여 MySQL에 데이터 선택 및 삽입

  16. 16

    Android를 사용하여 Parse에 다중 데이터 삽입

  17. 17

    LINQ를 사용하여 기존 XML에 XML 데이터 삽입

  18. 18

    PHP를 사용하여 Javascript에서 MySQL로 데이터 삽입

  19. 19

    robomongo를 사용하여 mongodb에 데이터 삽입 오류

  20. 20

    청크를 사용하여 데이터베이스 Laravel에 데이터 삽입

  21. 21

    Dart를 사용하여 Postgres 데이터베이스에 데이터 삽입

  22. 22

    PHP를 사용하여 mysql 데이터베이스에 데이터 삽입

  23. 23

    pdo를 사용하여 SQL Server DB에 이미지 삽입

  24. 24

    직접 삽입 문으로 PDO를 사용하여 mysql 데이터베이스에 데이터 삽입

  25. 25

    NpgSql에서 벌크 데이터 삽입을 위해 BeginBinaryImport를 사용하여 비트 데이터 유형 삽입

  26. 26

    Opencart를 사용하여 데이터베이스에 사용자 지정 데이터를 삽입하는 방법

  27. 27

    Entity Framework를 사용하여 데이터베이스에 데이터 테이블 데이터 삽입?

  28. 28

    어떻게 DB에 삽입 데이터 JPA 쿼리를 사용 하는가?

  29. 29

    업데이트 삽입 쿼리를 사용하여 .csv 값을 데이터베이스에 삽입

뜨겁다태그

보관