{"id":40123,"date":"2015-05-21T16:00:13","date_gmt":"2015-05-21T13:00:13","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=40123"},"modified":"2015-05-19T10:21:15","modified_gmt":"2015-05-19T07:21:15","slug":"spring-integration-jdbc-rowmapper-example","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html","title":{"rendered":"Spring Integration Jdbc RowMapper Example"},"content":{"rendered":"<p>The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a <code>Message<\/code> onto the local channels. You can read more about this in my example on <a href=\"http:\/\/javarticles.com\/2015\/05\/spring-integration-jdbc-inbound-adapter.html\">JDBC Inbound Channel Adapter<\/a>.<\/p>\n<p>The type of the payload is decided by the row-mapping strategy. The default one results into a payload of type List where each element is a Map of column values.\u00a0In our previous article on Jdbc Inbound Adapter, we have used the default row-mapping strategy which is why the message contains\u00a0List of map values as the payload. the column values will be returned as a Map with the column name being the key values.<\/p>\n<p>In this article, we will see how to customize the mapping strategy so that the payload is a List of POJOs. We will also learn about how to handle the JDBC message and the use of <code>transactional<\/code> element.<\/p>\n<p>Before we start with the example, lets first add module dependencies to our <code>pom.xml<\/code>.<\/p>\n<h2>Dependencies<\/h2>\n<p>Add the following dependencies:<\/p>\n<ol>\n<li><code>spring-core<\/code><\/li>\n<li><code>spring-context<\/code><\/li>\n<li><code>spring-integration-core<\/code><\/li>\n<li><code>spring-integration-jdbc<\/code> \u2013 This is requited to access the jdbc adapter<\/li>\n<li><code>mysql-connector-java<\/code> \u2013 We will be using MySQL as the Database so you need to add MySql driver<\/li>\n<\/ol>\n<p><em>pom.xml:<\/em><\/p>\n<pre class=\" brush:xml\">&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n\txsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\r\n\t&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\r\n\t&lt;groupId&gt;com.javarticles.spring.integration.jms&lt;\/groupId&gt;\r\n\t&lt;artifactId&gt;springintegrationjms&lt;\/artifactId&gt;\r\n\t&lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\r\n\r\n\t&lt;dependencies&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;spring-core&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;${spring.version}&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;spring-context&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;${spring.version}&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.springframework.integration&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;spring-integration-core&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;4.1.2.RELEASE&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.springframework.integration&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;spring-integration-jdbc&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;4.1.2.RELEASE&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;compile&lt;\/scope&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;mysql&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;mysql-connector-java&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;5.1.26&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\t\t\r\n\t&lt;\/dependencies&gt;\r\n\r\n\t&lt;properties&gt;\r\n\t\t&lt;spring.version&gt;4.1.4.RELEASE&lt;\/spring.version&gt;\r\n\t&lt;\/properties&gt;\r\n\r\n&lt;\/project&gt;<\/pre>\n<h2>Custom Row Mapper<\/h2>\n<p><em>Article:<\/em><\/p>\n<pre class=\" brush:java\">package com.javarticles.spring.integration.jdbc;\r\n\r\npublic class Article {\r\n    private int id;\r\n    private String name;\r\n    private String tags;\r\n    private String category;\r\n    private String author;\r\n\r\n    public int getId() {\r\n        return id;\r\n    }\r\n\r\n    public void setId(int id) {\r\n        this.id = id;\r\n    }\r\n\r\n    public String getName() {\r\n        return name;\r\n    }\r\n\r\n    public void setName(String name) {\r\n        this.name = name;\r\n    }\r\n\r\n    public String getTags() {\r\n        return tags;\r\n    }\r\n\r\n    public void setTags(String tags) {\r\n        this.tags = tags;\r\n    }\r\n\r\n    public String getCategory() {\r\n        return category;\r\n    }\r\n\r\n    public void setCategory(String category) {\r\n        this.category = category;\r\n    }\r\n\r\n    public String getAuthor() {\r\n        return author;\r\n    }\r\n\r\n    public void setAuthor(String author) {\r\n        this.author = author;\r\n    }\r\n\r\n    public String toString() {\r\n        StringBuilder sb = new StringBuilder(\"id: \");\r\n        sb.append(id).append(\", name: \").append(name).append(\", tags: \")\r\n                .append(tags).append(\", category: \").append(category)\r\n                .append(\", author\").append(author);\r\n        return sb.toString();\r\n    }\r\n}<\/pre>\n<p>We will customize the payload object by\u00a0implementing the org.springframework.jdbc.core.RowMapper interface and referencing this class through the row-mapper attribute.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><em>ArticleRowMapper:<\/em><\/p>\n<pre class=\" brush:java\">package com.javarticles.spring.integration.jdbc;\r\n\r\nimport java.sql.ResultSet;\r\nimport java.sql.SQLException;\r\n\r\nimport org.springframework.jdbc.core.RowMapper;\r\n\r\npublic class ArticleRowMapper implements RowMapper&lt;Article&gt; {\r\n\r\n    public Article mapRow(ResultSet rs, int rowNum) throws SQLException {\r\n        String name = rs.getString(\"name\");\r\n        String category = rs.getString(\"category\");\r\n        String author = rs.getString(\"author\");\r\n        String tags = rs.getString(\"tags\");\r\n        int id = rs.getInt(\"id\");\r\n        Article article = new Article();\r\n        article.setId(id);\r\n        article.setCategory(category);\r\n        article.setAuthor(author);\r\n        article.setName(name);\r\n        article.setTags(tags);\r\n        return article;\r\n    }\r\n}<\/pre>\n<p>Here is the schema and some test data:<\/p>\n<p><em>db-schema.sql:<\/em><\/p>\n<pre class=\" brush:bash\">drop table if exists `articles`;\r\nCREATE TABLE `articles` (\r\n  `ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,\r\n  `NAME` VARCHAR(100) NOT NULL,\r\n  `CATEGORY` VARCHAR(50) NOT NULL,\r\n  `TAGS` VARCHAR(100) NOT NULL,\r\n  `AUTHOR` VARCHAR(50) NOT NULL,\r\n  `SENT` INT,\r\n  PRIMARY KEY (`ID`)\r\n) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;<\/pre>\n<p><em>db-test-data.sql:<\/em><\/p>\n<pre class=\" brush:bash\">insert into articles(id, name, category, tags, author, sent) values (1, \"SpringIntegration Example\", \"spring\", \"spring,integration\", \"Joe\", 0);\r\ninsert into articles(id, name, category, tags, author, sent) values (2, \"NamedParameterJdbcTemplate Example\", \"spring\", \"spring,jdbcTemplate\", \"Sam\", 0);\r\ninsert into articles(id, name, category, tags, author, sent) values (3, \"MVC Example\", \"spring\", \"spring\", \"Joe\", 0);<\/pre>\n<p>We will also introduce transaction concept here. Once the articles are extracted, we want to update the \u2018sent\u2019 column to 1 so that the already read articles don\u2019t show up in the next polling.<\/p>\n<p>We will simply add the tansactional element to the poller element. This will cause the update and select queries to run in the same transaction. Since we are relying on transactions, we need to configure the transaction manager.<\/p>\n<p>One more thing that we have introduced is a service adapter, in case, you want to handle the JDBC message.<\/p>\n<p><em>JdbcMessageHandler:<\/em><\/p>\n<pre class=\" brush:java\">package com.javarticles.spring.integration.jdbc;\r\n\r\nimport java.util.List;\r\n\r\npublic class JdbcMessageHandler {\r\n    public void handleMessage(List&lt;Article&gt; articleList) {\r\n        System.out.println(\"In JdbcMessageHandler:\" + articleList);\r\n    }\r\n}<\/pre>\n<p>Let\u2019s see our configuration.<\/p>\n<p><em>jdbcInboundApplicationContext.xml:<\/em><\/p>\n<pre class=\" brush:xml;wrap-lines:false\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"\r\n\txmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:int=\"http:\/\/www.springframework.org\/schema\/integration\"\r\n\txmlns:jdbc=\"http:\/\/www.springframework.org\/schema\/jdbc\" xmlns:int-jdbc=\"http:\/\/www.springframework.org\/schema\/integration\/jdbc\"\r\n\txmlns:context=\"http:\/\/www.springframework.org\/schema\/context\" xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"\r\n\txsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/integration\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/integration\/spring-integration.xsd\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/integration\/jdbc\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/integration\/jdbc\/spring-integration-jdbc.xsd\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/jdbc\r\n\t\t\thttp:\/\/www.springframework.org\/schema\/jdbc\/spring-jdbc-3.0.xsd\"&gt;\r\n\r\n\t&lt;int-jdbc:inbound-channel-adapter id=\"dataChannel\"\r\n\t\tquery=\"select * from articles where author='Joe' and sent = 0\" \r\n\t\tupdate=\"update articles set sent = 1 where id in (:id)\"\r\n\t\tdata-source=\"dataSource\" row-mapper=\"articleRowMapper\"&gt;\r\n\t\t&lt;int:poller fixed-rate=\"100\"&gt;\r\n\t\t\t&lt;int:transactional \/&gt;\r\n\t\t&lt;\/int:poller&gt;\r\n\t&lt;\/int-jdbc:inbound-channel-adapter&gt;\r\n\r\n\t&lt;int:service-activator input-channel=\"dataChannel\" ref=\"jdbcMessageHandler\" \/&gt;\r\n\t\r\n\t&lt;bean id=\"jdbcMessageHandler\"\r\n\t\tclass=\"com.javarticles.spring.integration.jdbc.JdbcMessageHandler\" \/&gt;\r\n\r\n\t&lt;bean id=\"transactionManager\"\r\n\t\tclass=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\"&gt;\r\n\t\t&lt;property name=\"dataSource\" ref=\"dataSource\" \/&gt;\r\n\t&lt;\/bean&gt;\r\n\r\n\t&lt;int:poller default=\"true\" fixed-rate=\"100\" \/&gt;\r\n\r\n\t&lt;int:channel id=\"dataChannel\"&gt;\r\n\t\t&lt;int:queue \/&gt;\r\n\t&lt;\/int:channel&gt;\r\n\r\n\t&lt;jdbc:initialize-database data-source=\"dataSource\"\r\n\t\tenabled=\"true\"&gt;\r\n\t\t&lt;jdbc:script location=\"classpath:db-schema.sql\" \/&gt;\r\n\t\t&lt;jdbc:script location=\"classpath:db-test-data.sql\" \/&gt;\r\n\t&lt;\/jdbc:initialize-database&gt;\r\n\r\n\t&lt;bean id=\"dataSource\"\r\n\t\tclass=\"org.springframework.jdbc.datasource.DriverManagerDataSource\"&gt;\r\n\t\t&lt;property name=\"driverClassName\" value=\"com.mysql.jdbc.Driver\" \/&gt;\r\n\t\t&lt;property name=\"url\" value=\"jdbc:mysql:\/\/localhost\/test\" \/&gt;\r\n\t\t&lt;property name=\"username\" value=\"root\" \/&gt;\r\n\t\t&lt;property name=\"password\" value=\"mnrpass\" \/&gt;\r\n\t&lt;\/bean&gt;\r\n\r\n\t&lt;bean id=\"articleRowMapper\"\r\n\t\tclass=\"com.javarticles.spring.integration.jdbc.ArticleRowMapper\" \/&gt;\r\n&lt;\/beans&gt;<\/pre>\n<p>Our main class looks simple, we just need to load the context to initiate the polling.<\/p>\n<p><em>SpringIntegrationJdbcInboundRowMapperExample:<\/em><\/p>\n<pre class=\" brush:java\">package com.javarticles.spring.integration.jdbc;\r\n\r\nimport java.io.IOException;\r\nimport java.sql.SQLException;\r\n\r\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\r\n\r\npublic class SpringIntegrationJdbcInboundRowMapperExample {\r\n\r\n    public static void main(String[] args) throws InterruptedException, IOException, SQLException {\r\n        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(\r\n                \"jdbcInboundApplicationContext.xml\");\r\n        Thread.sleep(1000);\r\n        context.close();\r\n    }\r\n    \r\n}<\/pre>\n<p><em>Output:<\/em><\/p>\n<pre class=\" brush:bash\">In JdbcMessageHandler:[id: 1, name: SpringIntegration Example, tags: spring,integration, category: spring, authorJoe, sent: 0, id: 3, name: MVC Example, tags: spring, category: spring, authorJoe, sent: 0]<\/pre>\n<h2>Download the source code<\/h2>\n<p>This was an example about Jdbc Inbound Adapter with a RowMapper. You can download the source code here: <a href=\"http:\/\/javarticles.com\/wp-content\/uploads\/2015\/05\/springintegrationJdbcRowMapper.zip\"><strong>springintegrationJdbcRowMapper.zip<\/strong><\/a><\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/javarticles.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html\">Spring Integration Jdbc RowMapper Example<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\/\">JCG partner<\/a> Ram Mokkapaty at the <a href=\"http:\/\/javarticles.com\/\">Java Articles<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a Message onto the local channels. You can read more about this in my example on JDBC Inbound Channel Adapter. The type of the payload is decided by the &hellip;<\/p>\n","protected":false},"author":909,"featured_media":240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[30,410],"class_list":["post-40123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-spring","tag-spring-integration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spring Integration Jdbc RowMapper Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Integration Jdbc RowMapper Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-21T13:00:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ram Mokkapaty\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ram Mokkapaty\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html\"},\"author\":{\"name\":\"Ram Mokkapaty\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/831b22113cec3ffe8e572367403863e6\"},\"headline\":\"Spring Integration Jdbc RowMapper Example\",\"datePublished\":\"2015-05-21T13:00:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html\"},\"wordCount\":405,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"keywords\":[\"Spring\",\"Spring Integration\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html\",\"name\":\"Spring Integration Jdbc RowMapper Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"datePublished\":\"2015-05-21T13:00:13+00:00\",\"description\":\"The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"spring-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/05\\\/spring-integration-jdbc-rowmapper-example.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Spring Integration Jdbc RowMapper Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/831b22113cec3ffe8e572367403863e6\",\"name\":\"Ram Mokkapaty\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47fb466b96ae24880d72c69f71a12dc4a75e6dad1236498a9adf80d3dd46fde4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47fb466b96ae24880d72c69f71a12dc4a75e6dad1236498a9adf80d3dd46fde4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47fb466b96ae24880d72c69f71a12dc4a75e6dad1236498a9adf80d3dd46fde4?s=96&d=mm&r=g\",\"caption\":\"Ram Mokkapaty\"},\"description\":\"Ram holds a master's degree in Machine Design from IT B.H.U. His expertise lies in test driven development and re-factoring. He is passionate about open source technologies and actively blogs on various java and open-source technologies like spring. He works as a principal Engineer in the logistics domain.\",\"sameAs\":[\"http:\\\/\\\/javarticles.com\\\/\",\"https:\\\/\\\/in.linkedin.com\\\/pub\\\/ram-satish-mokkapaty\\\/18\\\/123\\\/52b\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ram-mokkapaty\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Integration Jdbc RowMapper Example - Java Code Geeks","description":"The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html","og_locale":"en_US","og_type":"article","og_title":"Spring Integration Jdbc RowMapper Example - Java Code Geeks","og_description":"The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a","og_url":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2015-05-21T13:00:13+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","type":"image\/jpeg"}],"author":"Ram Mokkapaty","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ram Mokkapaty","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html"},"author":{"name":"Ram Mokkapaty","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/831b22113cec3ffe8e572367403863e6"},"headline":"Spring Integration Jdbc RowMapper Example","datePublished":"2015-05-21T13:00:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html"},"wordCount":405,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","keywords":["Spring","Spring Integration"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html","url":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html","name":"Spring Integration Jdbc RowMapper Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","datePublished":"2015-05-21T13:00:13+00:00","description":"The JDBC inbound channel adapter\u2019s basic function is to execute a SQL query, extract the data and pass the result set encapsulated in the form of a","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","width":150,"height":150,"caption":"spring-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2015\/05\/spring-integration-jdbc-rowmapper-example.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Spring Integration Jdbc RowMapper Example"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/831b22113cec3ffe8e572367403863e6","name":"Ram Mokkapaty","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/47fb466b96ae24880d72c69f71a12dc4a75e6dad1236498a9adf80d3dd46fde4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/47fb466b96ae24880d72c69f71a12dc4a75e6dad1236498a9adf80d3dd46fde4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47fb466b96ae24880d72c69f71a12dc4a75e6dad1236498a9adf80d3dd46fde4?s=96&d=mm&r=g","caption":"Ram Mokkapaty"},"description":"Ram holds a master's degree in Machine Design from IT B.H.U. His expertise lies in test driven development and re-factoring. He is passionate about open source technologies and actively blogs on various java and open-source technologies like spring. He works as a principal Engineer in the logistics domain.","sameAs":["http:\/\/javarticles.com\/","https:\/\/in.linkedin.com\/pub\/ram-satish-mokkapaty\/18\/123\/52b"],"url":"https:\/\/www.javacodegeeks.com\/author\/ram-mokkapaty"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/40123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/909"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=40123"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/40123\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=40123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=40123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=40123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}