Class JDBCCaptureStatementBuilder

  • All Implemented Interfaces:
    AdaptrisComponent, ComponentLifecycle, ComponentLifecycleExtension, ConnectedService, MessageEventGenerator, Service, StateManagedComponent

    @ComponentProfile(summary="JDBC data capture statement builder service",
                      tag="jdbc,capture,build,statement",
                      since="4.1.0")
    public class JDBCCaptureStatementBuilder
    extends JDBCStatementBuilder
    JDBC data captuer statement builder service.

    Build a JDBC data captuere service using the given statement to create the necessary parameter list. It turns:

    
    <jdbc-upsert-service>
        <unique-id>7b18517b-017d-4741-8b5e-9e490bff6c51</unique-id>
        <statement>INSERT INTO person (id, name, dob, age) VALUES (%sql_id{string:id}, %sql_payload{string:name}, %sql_metadata{date:dob}, %sql_metadata{integer:age})</statement>
    </jdbc-upsert-service>
    
    

    into:

    
    <jdbc-raw-data-capture-service>
        <uniqueId>3759673b-e2e2-4f01-a122-b59b67931a02</uniqueId>
        <named-parameter-applicator>
            <parameterNamePrefix>#</parameterNamePrefix>
            <parameterNameRegex>#\w*</parameterNameRegex>
        </named-parameter-applicator>
        <statementParameters>
            <parameters>
                <jdbc-integer-statement-parameter>
                    <name>age</name>
                    <queryString>age</queryString>
                    <queryType>metadata</queryType>
                    <convertNull>false</convertNull>
                </jdbc-integer-statement-parameter>
                <jdbc-date-statement-parameter>
                    <name>dob</name>
                    <queryString>dob</queryString>
                    <queryType>metadata</queryType>
                    <convertNull>false</convertNull>
                    <dateFormat>yyyy-MM-dd</dateFormat>
                </jdbc-date-statement-parameter>
                <jdbc-string-statement-parameter>
                    <name>name</name>
                    <queryString>name</queryString>
                    <queryType>payload</queryType>
                    <convertNull>false</convertNull>
                </jdbc-string-statement-parameter>
                <jdbc-string-statement-parameter>
                    <name>id</name>
                    <queryString>id</queryString>
                    <queryType>id</queryType>
                    <convertNull>false</convertNull>
                </jdbc-string-statement-parameter>
            </parameters>
        </statementParameters>
        <statement>INSERT INTO person (id, name, dob, age) VALUES (#id, #name, #dob, #age)</statement>
    </jdbc-raw-data-capture-service>