diff --git a/spring-boot-h2/spring-boot-h2-database/.gitignore b/spring-boot-h2/spring-boot-h2-database/.gitignore
new file mode 100644
index 0000000000..82eca336e3
--- /dev/null
+++ b/spring-boot-h2/spring-boot-h2-database/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
\ No newline at end of file
diff --git a/spring-boot-h2/spring-boot-h2-database/pom.xml b/spring-boot-h2/spring-boot-h2-database/pom.xml
new file mode 100644
index 0000000000..4b660334da
--- /dev/null
+++ b/spring-boot-h2/spring-boot-h2-database/pom.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+
+ com.baeldung.h2db
+ spring-boot-h2-database
+ 0.0.1-SNAPSHOT
+ jar
+
+ Demo Spring Boot applications that starts H2 in memory database
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.4.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+ com.h2database
+ h2
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
diff --git a/spring-boot-h2/spring-boot-h2-database/src/main/java/com/baeldung/h2db/demo/SpringBootApp.java b/spring-boot-h2/spring-boot-h2-database/src/main/java/com/baeldung/h2db/demo/SpringBootApp.java
new file mode 100644
index 0000000000..1fe080ec22
--- /dev/null
+++ b/spring-boot-h2/spring-boot-h2-database/src/main/java/com/baeldung/h2db/demo/SpringBootApp.java
@@ -0,0 +1,60 @@
+package com.baeldung.h2db.demo;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Arrays;
+import javax.annotation.PostConstruct;
+import org.h2.tools.Server;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowMapper;
+
+@SpringBootApplication
+public class SpringBootApp {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootApp.class, args);
+ }
+
+ @PostConstruct
+ private void initDb() {
+ System.out.println(String.format(
+ "****** Creating table: %s, and Inserting test data ******", "Employees"));
+
+ String sqlStatements[] = {
+ "drop table employees if exists",
+ "create table employees(id serial,first_name varchar(255),last_name varchar(255))",
+ "insert into employees(first_name, last_name) values('Eugen','Paraschiv')",
+ "insert into employees(first_name, last_name) values('Scott','Tiger')"
+ };
+
+ Arrays.asList(sqlStatements).stream().forEach(sql -> {
+ System.out.println(sql);
+ jdbcTemplate.execute(sql);
+ });
+
+ System.out.println(String.format("****** Fetching from table: %s ******", "Employees"));
+ jdbcTemplate.query("select id,first_name,last_name from employees",
+ new RowMapper