Insert Record in DB with SpringBoot NamedParameter JdbcTemplate

author-image   By Dhiraj,   04 February, 2017 17K

Hello guys, my last post was about inserting record in DB using jdbctemplate provided by Spring.In this post you will learn how to insert record in database with spring boot namedparameterjdbctemplate.We will be using the artifact spring-boot-starter-jdbc provided by spring boot to configure our spring jdbc configurations.Using this artifact,we can avoid creating specific beans for datasource and namdparameterjdbctemplate.Let us start coding to insert record in database with spring boot namdparameterjdbctemplate.

Maven Dependencies

spring-boot-starter-parent: provides useful Maven defaults. It also provides a dependency-management section so that you can omit version tags for existing dependencies.

spring-boot-starter-jdbc: provides all the maven dependecies for using JDBC with the Tomcat JDBC connection pool.



Spring Bean Configuration
package com.devglan.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@ComponentScan(basePackages = "com.devglan")
public class Application {

    public static void main(String[] args) {, args);


Following is the model class with getters and setters.
package com.devglan.model;

public class User {

    private int id;
    private String name;
    private String address;
    private String email;
    public int getId() {
	return id;

    public void setId(int id) { = id;

    public String getName() {
        return name;

    public void setName(String name) { = name;

    public String getAddress() {
        return address;

    public void setAddress(String address) {
        this.address = address;

    public String getEmail() {
        return email;

    public void setEmail(String email) { = email;


 Other Interesting Posts
Spring 5 Features and Enhancements
Insert Record in DB with Spring Boot JdbcTemplate
Fetch Auto Generated Primary Key Value After Insert Spring Jdbc
Working with Spring Boot Jdbctemplate
Working with Spring Boot NamedParameter Jdbctemplate
Execute Stored Procedure in Spring Jdbc
Spring Security Hibernate Example with complete JavaConfig
Securing REST API with Spring Security Basic Authentication
Websocket spring Boot Integration without STOMP with complete JavaConfig
Spring Boot Spring MVC Example
Spring Boot Thymeleaf Example
Spring Boot MVC with Jsp Example

Now let us define our properties class which will be considered by spring-boot automatically to create the bean for datasource at run time.

Now let us define our Dao class which will have implementation of namdparameterjdbctemplate to insert rows in the db.We are using KeyHolder to hold the auto generated primary key.

package com.devglan.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

import com.devglan.model.User;

public class UserDaoImpl {
	private final String INSERT_SQL = "INSERT INTO USERS(name, address, email) values(:name,:address,:email)";

	private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

	public User create(final User user) {
		KeyHolder holder = new GeneratedKeyHolder();
			SqlParameterSource parameters = new MapSqlParameterSource()
					.addValue("name", user.getName())
					.addValue("address", user.getAddress())
					.addValue("email", user.getEmail());
			namedParameterJdbcTemplate.update(INSERT_SQL, parameters, holder);
			return user;


Now, it is time to define our test cases to test whether the insert record in database with spring boot namdparameterjdbctemplate.If you need to learn more on spring Boot Junit integration, then visit my earlier post Spring Boot Junit Integration Example
package com.devglan.dao.test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.devglan.config.Application;
import com.devglan.dao.UserDao;
import com.devglan.model.User;

@SpringApplicationConfiguration (Application.class)
public class UserDaoTest {

	private UserDao userDao;

	public void createUser() {
		User savedUser = userDao.create(getUser());
		User userFromDb = userDao.findUserById(savedUser.getId());
		assertEquals(savedUser.getName(), userFromDb.getName());
		assertEquals(savedUser.getEmail(), userFromDb.getEmail());

        private User getUser() {
		User user = new User();
		user.setAddress("Bangalore, Karnataka");
		user.setName("John Doe");
		return user;



CREATE TABLE users (record_id bigint NOT NULL AUTO_INCREMENT, name varchar(100), address varchar(250), email varchar(100), PRIMARY KEY (record_id));

Run Application

Run the test case defined as Junit test case and check the result.You can also verify that a single user row is created in db.


I hope this article served you that you were looking for. If you have anything that you want to add or share then please share it below in the comment section.

If You Appreciate This, You Can Consider:

  • Like us at: Facebook or follow us at Twitter
  • Share this article on social media or with your teammates.
  • We are thankful for your never ending support.

About The Author


I am an energetic professional who enjoys the challenges involved in working with people and resolving real-time problems. Technical expertise in building highly scalable, distributed and self-healing cloud applications. Technical Skills: Java/J2EE, Spring Framework, Hibernate, Angular, Reactive Programming, Microservices, Rest APIs, Kafka, ELK, etc.

Further Reading on Spring Jdbc

1 Insert Record In Db With Spring Boot Jdbctemplate

2 Fetch Auto Generated Primary Key Value After Insert Spring Jdbc

3 Working With Springboot Jdbctemplate

4 Working With Springboot Namedparameter Jdbctemplate

5 Execute Stored Procedure In Spring Jdbc