JDBC Topic

Configuration Properties

Properties for a JDBC Topic are defined by name in the dlc.jdbc.topics namespace, and are picked up as configurations for the DLC.

Key Required Type Default Description
sql Y String SQL statement. Can accept parameters.
parameterOrder List<String> List which contains the order of scope keys for providing parameters to the prepared statement. Values come from the scope of the request.
channels Set<Channel> A channel is created using the topic’s name as the name of the target. Channels.
restrict-to-sources Set<String> Sources to which the topic is restricted.
restrict-from-sources Set<String> Sources from which the topic restricted.

YAML Example

dlc:
  jdbc:
    topics:
      trades:
        sql: 'SELECT * FROM table1'
      topic6:
        sql: 'SELECT ProductId AS ProductId,
                  Name AS  ProductName,
                  Color AS  ProductColor,
                  Price AS  ProductPrice,
                  CobDate AS  CobDate
                  FROM  ProductStore
                  WHERE  CobDate = ?'
        parameter-order:
          - CobDate

Java Configuration

JdbcTopicDescription Spring Beans are picked up as configurations for the DLC.

Parameter Required Type Default Description
name Y String Name of the topic.
sql Y String SQL statement. Can accept parameters.
parameterOrder List<String> List which contains the order of scope keys for providing parameters to the prepared statement. Values come from the scope of the request.
channels Set<Channel> A channel is created using the topic’s name as the name of the target. Channels.
restrictToSources Set<String> Sources to which the topic is restricted.
restrictFromSources Set<String> Sources from which the topic restricted.

Java Example

@Bean
public JdbcTopicDescription tradesTopic() {
    return JdbcTopicDescription.builder("trades", "SELECT * FROM table1")
            .build();
}

@Bean
public JdbcTopicDescription tradesTopic() {
    return JdbcTopicDescription.builder("Trades", """
                    SELECT ProductId AS ProductId,
                    Name AS  ProductName,
                    Color AS  ProductColor,
                    Price AS  ProductPrice,
                    CobDate AS  CobDate
                    FROM  ProductStore
                    WHERE  CobDate = ?""")
            .parameterOrder(List.of("CobDate"))
            .build();
}