From 78e180f35d3a6de9a05bd122df6614075332a6ac Mon Sep 17 00:00:00 2001 From: Gang Wu Date: Tue, 14 Apr 2020 19:23:11 -0600 Subject: [PATCH] BAEL-3961 Make the program more robust by only create the table when necessary and clean all data in the temp table. --- .../src/main/java/com/baeldung/jdbc/EmployeeDAO.java | 3 ++- .../src/test/java/com/baeldung/jdbc/EmployeeDAOUnitTest.java | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/jdbc/EmployeeDAO.java b/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/jdbc/EmployeeDAO.java index dec88ee1f6..25d280ad12 100644 --- a/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/jdbc/EmployeeDAO.java +++ b/persistence-modules/spring-persistence-simple-2/src/main/java/com/baeldung/jdbc/EmployeeDAO.java @@ -45,7 +45,8 @@ public class EmployeeDAO { } public List getEmployeesFromLargeIdList(List ids) { - jdbcTemplate.execute("CREATE TEMPORARY TABLE employee_tmp (id INT NOT NULL)"); + jdbcTemplate.execute("CREATE TEMPORARY TABLE IF NOT EXISTS employee_tmp (id INT NOT NULL)"); + jdbcTemplate.update("DELETE FROM employee_tmp"); List employeeIds = new ArrayList<>(); for (Integer id : ids) { diff --git a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jdbc/EmployeeDAOUnitTest.java b/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jdbc/EmployeeDAOUnitTest.java index f21704221b..369725bafd 100644 --- a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jdbc/EmployeeDAOUnitTest.java +++ b/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jdbc/EmployeeDAOUnitTest.java @@ -98,5 +98,10 @@ public class EmployeeDAOUnitTest { assertEquals(1, employees.get(0).getId()); assertEquals(3, employees.get(1).getId()); assertEquals(4, employees.get(2).getId()); + + ids.clear(); + ids.add(2); + employees = employeeDAO.getEmployeesFromLargeIdList(ids); + assertEquals(1, employees.size()); } }