diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml
index 1a5ca8df70..4e46c9204b 100644
--- a/persistence-modules/pom.xml
+++ b/persistence-modules/pom.xml
@@ -86,7 +86,7 @@
spring-jpa-2
spring-jdbc
- spring-persistence-simple-2
+ spring-persistence-simple
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/CustomSQLErrorCodeTranslator.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/CustomSQLErrorCodeTranslator.java
similarity index 93%
rename from persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/CustomSQLErrorCodeTranslator.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/CustomSQLErrorCodeTranslator.java
index aa0ffde00c..9beed9f9df 100644
--- a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/CustomSQLErrorCodeTranslator.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/CustomSQLErrorCodeTranslator.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.jdbc;
+package com.baeldung.spring.jdbc.template.guide;
import java.sql.SQLException;
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/Employee.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/Employee.java
similarity index 93%
rename from persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/Employee.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/Employee.java
index 84780e30da..32ca9ad0d3 100644
--- a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/Employee.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/Employee.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.jdbc;
+package com.baeldung.spring.jdbc.template.guide;
public class Employee {
private int id;
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/EmployeeDAO.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/EmployeeDAO.java
similarity index 99%
rename from persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/EmployeeDAO.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/EmployeeDAO.java
index a6d0fe2f3b..11ecd84000 100644
--- a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/EmployeeDAO.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/EmployeeDAO.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.jdbc;
+package com.baeldung.spring.jdbc.template.guide;
import java.sql.PreparedStatement;
import java.sql.SQLException;
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/EmployeeRowMapper.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/EmployeeRowMapper.java
similarity index 92%
rename from persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/EmployeeRowMapper.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/EmployeeRowMapper.java
index bf55d6160d..f4ea5ac7b6 100644
--- a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/EmployeeRowMapper.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/EmployeeRowMapper.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.jdbc;
+package com.baeldung.spring.jdbc.template.guide;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/config/SpringJdbcConfig.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/config/SpringJdbcConfig.java
similarity index 82%
rename from persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/config/SpringJdbcConfig.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/config/SpringJdbcConfig.java
index d7eb039637..0e81babd9a 100644
--- a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/config/SpringJdbcConfig.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/guide/config/SpringJdbcConfig.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.jdbc.config;
+package com.baeldung.spring.jdbc.template.guide.config;
import javax.sql.DataSource;
@@ -17,8 +17,8 @@ public class SpringJdbcConfig {
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
- .addScript("classpath:jdbc/schema.sql")
- .addScript("classpath:jdbc/test-data.sql")
+ .addScript("classpath:com/baeldung/spring/jdbc/template/guide/schema.sql")
+ .addScript("classpath:com/baeldung/spring/jdbc/template/guide/test-data.sql")
.build();
}
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/inclause/Employee.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/inclause/Employee.java
new file mode 100644
index 0000000000..c771033649
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/inclause/Employee.java
@@ -0,0 +1,42 @@
+package com.baeldung.spring.jdbc.template.inclause;
+
+public class Employee {
+ private int id;
+
+ private String firstName;
+
+ private String lastName;
+
+
+ public Employee(int id, String firstName, String lastName) {
+ this.id = id;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(final int id) {
+ this.id = id;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(final String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(final String lastName) {
+ this.lastName = lastName;
+ }
+
+
+}
diff --git a/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/spring/jdbc/EmployeeDAO.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/inclause/EmployeeDAO.java
similarity index 88%
rename from persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/spring/jdbc/EmployeeDAO.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/inclause/EmployeeDAO.java
index 6e2ad9682d..38b4a58355 100644
--- a/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/spring/jdbc/EmployeeDAO.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/inclause/EmployeeDAO.java
@@ -1,10 +1,4 @@
-package com.baeldung.spring.jdbc;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.sql.DataSource;
+package com.baeldung.spring.jdbc.template.inclause;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@@ -12,6 +6,11 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.stereotype.Repository;
+import javax.sql.DataSource;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
@Repository
public class EmployeeDAO {
private JdbcTemplate jdbcTemplate;
@@ -22,15 +21,11 @@ public class EmployeeDAO {
namedJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
- public int getCountOfEmployees() {
- return jdbcTemplate.queryForObject("SELECT COUNT(*) FROM EMPLOYEE", Integer.class);
- }
-
public List getEmployeesFromIdListNamed(List ids) {
SqlParameterSource parameters = new MapSqlParameterSource("ids", ids);
List employees = namedJdbcTemplate.query(
- "SELECT * FROM EMPLOYEE WHERE id IN (:ids)",
- parameters,
+ "SELECT * FROM EMPLOYEE WHERE id IN (:ids)",
+ parameters,
(rs, rowNum) -> new Employee(rs.getInt("id"), rs.getString("first_name"), rs.getString("last_name")));
return employees;
@@ -39,8 +34,8 @@ public class EmployeeDAO {
public List getEmployeesFromIdList(List ids) {
String inSql = String.join(",", Collections.nCopies(ids.size(), "?"));
List employees = jdbcTemplate.query(
- String.format("SELECT * FROM EMPLOYEE WHERE id IN (%s)", inSql),
- ids.toArray(),
+ String.format("SELECT * FROM EMPLOYEE WHERE id IN (%s)", inSql),
+ ids.toArray(),
(rs, rowNum) -> new Employee(rs.getInt("id"), rs.getString("first_name"), rs.getString("last_name")));
return employees;
@@ -56,12 +51,11 @@ public class EmployeeDAO {
jdbcTemplate.batchUpdate("INSERT INTO employee_tmp VALUES(?)", employeeIds);
List employees = jdbcTemplate.query(
- "SELECT * FROM EMPLOYEE WHERE id IN (SELECT id FROM employee_tmp)",
+ "SELECT * FROM EMPLOYEE WHERE id IN (SELECT id FROM employee_tmp)",
(rs, rowNum) -> new Employee(rs.getInt("id"), rs.getString("first_name"), rs.getString("last_name")));
jdbcTemplate.update("DELETE FROM employee_tmp");
return employees;
}
-
}
diff --git a/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/spring/jdbc/Employee.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/testing/Employee.java
similarity index 93%
rename from persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/spring/jdbc/Employee.java
rename to persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/testing/Employee.java
index adc2255ca4..80be897827 100644
--- a/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/spring/jdbc/Employee.java
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/testing/Employee.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.jdbc;
+package com.baeldung.spring.jdbc.template.testing;
public class Employee {
private int id;
diff --git a/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/testing/EmployeeDAO.java b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/testing/EmployeeDAO.java
new file mode 100644
index 0000000000..64b146fd47
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/main/java/com/baeldung/spring/jdbc/template/testing/EmployeeDAO.java
@@ -0,0 +1,19 @@
+package com.baeldung.spring.jdbc.template.testing;
+
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+import javax.sql.DataSource;
+
+@Repository
+public class EmployeeDAO {
+ private JdbcTemplate jdbcTemplate;
+
+ public void setDataSource(DataSource dataSource) {
+ jdbcTemplate = new JdbcTemplate(dataSource);
+ }
+
+ public int getCountOfEmployees() {
+ return jdbcTemplate.queryForObject("SELECT COUNT(*) FROM EMPLOYEE", Integer.class);
+ }
+}
\ No newline at end of file
diff --git a/persistence-modules/spring-jdbc/src/main/resources/application.properties b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/guide/application.properties
similarity index 100%
rename from persistence-modules/spring-jdbc/src/main/resources/application.properties
rename to persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/guide/application.properties
diff --git a/persistence-modules/spring-jdbc/src/main/resources/jdbc/schema.sql b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/guide/schema.sql
similarity index 100%
rename from persistence-modules/spring-jdbc/src/main/resources/jdbc/schema.sql
rename to persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/guide/schema.sql
diff --git a/persistence-modules/spring-jdbc/src/main/resources/jdbc/test-data.sql b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/guide/test-data.sql
similarity index 100%
rename from persistence-modules/spring-jdbc/src/main/resources/jdbc/test-data.sql
rename to persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/guide/test-data.sql
diff --git a/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/inclause/schema.sql b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/inclause/schema.sql
new file mode 100644
index 0000000000..ef4460e267
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/inclause/schema.sql
@@ -0,0 +1,7 @@
+CREATE TABLE EMPLOYEE
+(
+ ID int NOT NULL PRIMARY KEY,
+ FIRST_NAME varchar(255),
+ LAST_NAME varchar(255),
+ ADDRESS varchar(255)
+);
\ No newline at end of file
diff --git a/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/inclause/test-data.sql b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/inclause/test-data.sql
new file mode 100644
index 0000000000..b9ef8fec25
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/inclause/test-data.sql
@@ -0,0 +1,7 @@
+INSERT INTO EMPLOYEE VALUES (1, 'James', 'Gosling', 'Canada');
+
+INSERT INTO EMPLOYEE VALUES (2, 'Donald', 'Knuth', 'USA');
+
+INSERT INTO EMPLOYEE VALUES (3, 'Linus', 'Torvalds', 'Finland');
+
+INSERT INTO EMPLOYEE VALUES (4, 'Dennis', 'Ritchie', 'USA');
\ No newline at end of file
diff --git a/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/testing/schema.sql b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/testing/schema.sql
new file mode 100644
index 0000000000..ef4460e267
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/testing/schema.sql
@@ -0,0 +1,7 @@
+CREATE TABLE EMPLOYEE
+(
+ ID int NOT NULL PRIMARY KEY,
+ FIRST_NAME varchar(255),
+ LAST_NAME varchar(255),
+ ADDRESS varchar(255)
+);
\ No newline at end of file
diff --git a/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/testing/test-data.sql b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/testing/test-data.sql
new file mode 100644
index 0000000000..b9ef8fec25
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/main/resources/com/baeldung/spring/jdbc/template/testing/test-data.sql
@@ -0,0 +1,7 @@
+INSERT INTO EMPLOYEE VALUES (1, 'James', 'Gosling', 'Canada');
+
+INSERT INTO EMPLOYEE VALUES (2, 'Donald', 'Knuth', 'USA');
+
+INSERT INTO EMPLOYEE VALUES (3, 'Linus', 'Torvalds', 'Finland');
+
+INSERT INTO EMPLOYEE VALUES (4, 'Dennis', 'Ritchie', 'USA');
\ No newline at end of file
diff --git a/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/EmployeeDAOIntegrationTest.java b/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/guide/EmployeeDAOIntegrationTest.java
similarity index 94%
rename from persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/EmployeeDAOIntegrationTest.java
rename to persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/guide/EmployeeDAOIntegrationTest.java
index 10f47402be..c29d5c4534 100644
--- a/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/EmployeeDAOIntegrationTest.java
+++ b/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/guide/EmployeeDAOIntegrationTest.java
@@ -1,9 +1,11 @@
-package com.baeldung.spring.jdbc;
+package com.baeldung.spring.jdbc.template.guide;
import java.util.ArrayList;
import java.util.List;
-import com.baeldung.spring.jdbc.config.SpringJdbcConfig;
+import com.baeldung.spring.jdbc.template.guide.Employee;
+import com.baeldung.spring.jdbc.template.guide.EmployeeDAO;
+import com.baeldung.spring.jdbc.template.guide.config.SpringJdbcConfig;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/spring/jdbc/EmployeeDAOUnitTest.java b/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/inclause/EmployeeDAOUnitTest.java
similarity index 69%
rename from persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/spring/jdbc/EmployeeDAOUnitTest.java
rename to persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/inclause/EmployeeDAOUnitTest.java
index bbc688293b..d9a858302b 100644
--- a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/spring/jdbc/EmployeeDAOUnitTest.java
+++ b/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/inclause/EmployeeDAOUnitTest.java
@@ -1,22 +1,19 @@
-package com.baeldung.spring.jdbc;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.sql.DataSource;
+package com.baeldung.spring.jdbc.template.inclause;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
-import org.springframework.test.util.ReflectionTestUtils;
+
+import javax.sql.DataSource;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
@RunWith(MockitoJUnitRunner.class)
@@ -30,33 +27,9 @@ public class EmployeeDAOUnitTest {
public void setup() {
dataSource = new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2)
.generateUniqueName(true)
- .addScript("classpath:jdbc/schema.sql")
- .addScript("classpath:jdbc/test-data.sql")
+ .addScript("classpath:com/baeldung/spring/jdbc/template/inclause/schema.sql")
+ .addScript("classpath:com/baeldung/spring/jdbc/template/inclause/test-data.sql")
.build();
-
- }
-
- @Test
- public void whenMockJdbcTemplate_thenReturnCorrectEmployeeCount() {
- EmployeeDAO employeeDAO = new EmployeeDAO();
- ReflectionTestUtils.setField(employeeDAO, "jdbcTemplate", jdbcTemplate);
- Mockito.when(jdbcTemplate.queryForObject("SELECT COUNT(*) FROM EMPLOYEE", Integer.class))
- .thenReturn(4);
-
- assertEquals(4, employeeDAO.getCountOfEmployees());
-
- Mockito.when(jdbcTemplate.queryForObject(Mockito.anyString(), Mockito.eq(Integer.class)))
- .thenReturn(3);
-
- assertEquals(3, employeeDAO.getCountOfEmployees());
- }
-
- @Test
- public void whenInjectInMemoryDataSource_thenReturnCorrectEmployeeCount() {
- EmployeeDAO employeeDAO = new EmployeeDAO();
- employeeDAO.setDataSource(dataSource);
-
- assertEquals(4, employeeDAO.getCountOfEmployees());
}
@Test
diff --git a/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/testing/EmployeeDAOUnitTest.java b/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/testing/EmployeeDAOUnitTest.java
new file mode 100644
index 0000000000..3609300c2d
--- /dev/null
+++ b/persistence-modules/spring-jdbc/src/test/java/com/baeldung/spring/jdbc/template/testing/EmployeeDAOUnitTest.java
@@ -0,0 +1,56 @@
+package com.baeldung.spring.jdbc.template.testing;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
+import org.springframework.test.util.ReflectionTestUtils;
+
+import javax.sql.DataSource;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@RunWith(MockitoJUnitRunner.class)
+public class EmployeeDAOUnitTest {
+ @Mock
+ JdbcTemplate jdbcTemplate;
+
+ DataSource dataSource;
+
+ @Before
+ public void setup() {
+ dataSource = new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2)
+ .generateUniqueName(true)
+ .addScript("classpath:com/baeldung/spring/jdbc/template/testing/schema.sql")
+ .addScript("classpath:com/baeldung/spring/jdbc/template/testing/test-data.sql")
+ .build();
+ }
+
+ @Test
+ public void whenMockJdbcTemplate_thenReturnCorrectEmployeeCount() {
+ EmployeeDAO employeeDAO = new EmployeeDAO();
+ ReflectionTestUtils.setField(employeeDAO, "jdbcTemplate", jdbcTemplate);
+ Mockito.when(jdbcTemplate.queryForObject("SELECT COUNT(*) FROM EMPLOYEE", Integer.class))
+ .thenReturn(4);
+
+ assertEquals(4, employeeDAO.getCountOfEmployees());
+
+ Mockito.when(jdbcTemplate.queryForObject(Mockito.anyString(), Mockito.eq(Integer.class)))
+ .thenReturn(3);
+
+ assertEquals(3, employeeDAO.getCountOfEmployees());
+ }
+
+ @Test
+ public void whenInjectInMemoryDataSource_thenReturnCorrectEmployeeCount() {
+ EmployeeDAO employeeDAO = new EmployeeDAO();
+ employeeDAO.setDataSource(dataSource);
+
+ assertEquals(4, employeeDAO.getCountOfEmployees());
+ }
+}
diff --git a/persistence-modules/spring-persistence-simple-2/README.md b/persistence-modules/spring-persistence-simple-2/README.md
deleted file mode 100644
index d80c7efc57..0000000000
--- a/persistence-modules/spring-persistence-simple-2/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-### Relevant Articles:
-
-- [Spring JdbcTemplate Unit Testing](https://www.baeldung.com/spring-jdbctemplate-testing)
-- [Using a List of Values in a JdbcTemplate IN Clause](https://www.baeldung.com/spring-jdbctemplate-in-list)
-- [Transactional Annotations: Spring vs. JTA](https://www.baeldung.com/spring-vs-jta-transactional)
-- [Test a Mock JNDI Datasource with Spring](https://www.baeldung.com/spring-mock-jndi-datasource)
diff --git a/persistence-modules/spring-persistence-simple-2/src/main/resources/jdbc/schema.sql b/persistence-modules/spring-persistence-simple-2/src/main/resources/jdbc/schema.sql
deleted file mode 100644
index be102431ca..0000000000
--- a/persistence-modules/spring-persistence-simple-2/src/main/resources/jdbc/schema.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-CREATE TABLE EMPLOYEE
-(
- ID int NOT NULL PRIMARY KEY,
- FIRST_NAME varchar(255),
- LAST_NAME varchar(255)
-);
\ No newline at end of file
diff --git a/persistence-modules/spring-persistence-simple-2/src/main/resources/jdbc/test-data.sql b/persistence-modules/spring-persistence-simple-2/src/main/resources/jdbc/test-data.sql
deleted file mode 100644
index 5421c09849..0000000000
--- a/persistence-modules/spring-persistence-simple-2/src/main/resources/jdbc/test-data.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-INSERT INTO EMPLOYEE VALUES (1, 'James', 'Gosling');
-INSERT INTO EMPLOYEE VALUES (2, 'Donald', 'Knuth');
-INSERT INTO EMPLOYEE VALUES (3, 'Linus', 'Torvalds');
-INSERT INTO EMPLOYEE VALUES (4, 'Dennis', 'Ritchie');
\ No newline at end of file
diff --git a/persistence-modules/spring-persistence-simple/.gitignore b/persistence-modules/spring-persistence-simple/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/persistence-modules/spring-persistence-simple/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/persistence-modules/spring-persistence-simple/README.md b/persistence-modules/spring-persistence-simple/README.md
new file mode 100644
index 0000000000..d665433eef
--- /dev/null
+++ b/persistence-modules/spring-persistence-simple/README.md
@@ -0,0 +1,25 @@
+=========
+
+## Spring Persistence Example Project
+
+
+### Relevant Articles:
+- [A Guide to JPA with Spring](https://www.baeldung.com/the-persistence-layer-with-spring-and-jpa)
+- [Bootstrapping Hibernate 5 with Spring](http://www.baeldung.com/hibernate-5-spring)
+- [The DAO with Spring and Hibernate](https://www.baeldung.com/persistence-layer-with-spring-and-hibernate)
+- [Simplify the DAO with Spring and Java Generics](https://www.baeldung.com/simplifying-the-data-access-layer-with-spring-and-java-generics)
+- [Transactions with Spring and JPA](https://www.baeldung.com/transaction-configuration-with-jpa-and-spring)
+- [Introduction to Spring Data JPA](http://www.baeldung.com/the-persistence-layer-with-spring-data-jpa)
+- [Spring Data JPA @Query](http://www.baeldung.com/spring-data-jpa-query)
+- [Spring JDBC](https://www.baeldung.com/spring-jdbc-jdbctemplate)
+- [Transaction Propagation and Isolation in Spring @Transactional](https://www.baeldung.com/spring-transactional-propagation-isolation)
+
+### Eclipse Config
+After importing the project into Eclipse, you may see the following error:
+"No persistence xml file found in project"
+
+This can be ignored:
+- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project"
+Or:
+- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator
+
diff --git a/persistence-modules/spring-persistence-simple-2/pom.xml b/persistence-modules/spring-persistence-simple/pom.xml
similarity index 91%
rename from persistence-modules/spring-persistence-simple-2/pom.xml
rename to persistence-modules/spring-persistence-simple/pom.xml
index b8f3b384a2..6ca0f3f025 100644
--- a/persistence-modules/spring-persistence-simple-2/pom.xml
+++ b/persistence-modules/spring-persistence-simple/pom.xml
@@ -2,9 +2,9 @@
4.0.0
- spring-persistence-simple-2
+ spring-persistence-simple
0.1-SNAPSHOT
- spring-persistence-simple-2
+ spring-persistence-simple
com.baeldung
@@ -32,7 +32,7 @@
${h2.version}
test
-
+
com.github.h-thurow
@@ -48,9 +48,9 @@
test
- org.mockito
+ org.mockito
mockito-core
- ${mockito.version}
+ ${mockito.version}
test
@@ -65,5 +65,4 @@
3.3.3
-
\ No newline at end of file
diff --git a/persistence-modules/spring-persistence-simple-2/src/main/resources/jndi/datasource.properties b/persistence-modules/spring-persistence-simple/src/main/resources/com/baeldung/spring/jndi/datasource/mock/datasource.properties
similarity index 100%
rename from persistence-modules/spring-persistence-simple-2/src/main/resources/jndi/datasource.properties
rename to persistence-modules/spring-persistence-simple/src/main/resources/com/baeldung/spring/jndi/datasource/mock/datasource.properties
diff --git a/persistence-modules/spring-persistence-simple-2/src/main/resources/jndi.properties b/persistence-modules/spring-persistence-simple/src/main/resources/jndi.properties
similarity index 69%
rename from persistence-modules/spring-persistence-simple-2/src/main/resources/jndi.properties
rename to persistence-modules/spring-persistence-simple/src/main/resources/jndi.properties
index d976f16c02..4ab5b3ba8b 100644
--- a/persistence-modules/spring-persistence-simple-2/src/main/resources/jndi.properties
+++ b/persistence-modules/spring-persistence-simple/src/main/resources/jndi.properties
@@ -3,4 +3,4 @@ org.osjava.sj.jndi.shared=true
org.osjava.sj.delimiter=.
jndi.syntax.separator=/
org.osjava.sj.space=java:/comp/env
-org.osjava.sj.root=src/main/resources/jndi
+org.osjava.sj.root=src/main/resources/com/baeldung/spring/jndi/datasource/mock
diff --git a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleJNDIUnitTest.java b/persistence-modules/spring-persistence-simple/src/test/java/com/baeldung/spring/jndi/datasource/mock/SimpleJNDIUnitTest.java
similarity index 95%
rename from persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleJNDIUnitTest.java
rename to persistence-modules/spring-persistence-simple/src/test/java/com/baeldung/spring/jndi/datasource/mock/SimpleJNDIUnitTest.java
index 37f33b1192..6576962609 100644
--- a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleJNDIUnitTest.java
+++ b/persistence-modules/spring-persistence-simple/src/test/java/com/baeldung/spring/jndi/datasource/mock/SimpleJNDIUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.jndi.datasource;
+package com.baeldung.spring.jndi.datasource.mock;
import static org.junit.Assert.assertEquals;
diff --git a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleNamingContextBuilderManualTest.java b/persistence-modules/spring-persistence-simple/src/test/java/com/baeldung/spring/jndi/datasource/mock/SimpleNamingContextBuilderManualTest.java
similarity index 96%
rename from persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleNamingContextBuilderManualTest.java
rename to persistence-modules/spring-persistence-simple/src/test/java/com/baeldung/spring/jndi/datasource/mock/SimpleNamingContextBuilderManualTest.java
index ac33be1c6f..f4c3e012f9 100644
--- a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleNamingContextBuilderManualTest.java
+++ b/persistence-modules/spring-persistence-simple/src/test/java/com/baeldung/spring/jndi/datasource/mock/SimpleNamingContextBuilderManualTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.jndi.datasource;
+package com.baeldung.spring.jndi.datasource.mock;
import static org.junit.Assert.assertNotNull;