From 2c0cc525a43992996eef42326035924ff3b750c0 Mon Sep 17 00:00:00 2001 From: Shashank Date: Fri, 15 Oct 2021 08:56:39 +0530 Subject: [PATCH] autogen key code cleanup --- persistence-modules/spring-jdbc/README.md | 1 + persistence-modules/spring-jpa/README.md | 1 - .../MessageRepositoryJDBCTemplate.java | 38 ------------- .../MessageRepositorySimpleJDBCInsert.java | 29 ---------- .../main/resources/autogenkey-db.properties | 9 --- .../src/main/resources/autogenkey-schema.sql | 5 -- .../GetAutoGenKeyByJDBCIntTest.java | 55 ------------------- 7 files changed, 1 insertion(+), 137 deletions(-) delete mode 100644 spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositoryJDBCTemplate.java delete mode 100644 spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositorySimpleJDBCInsert.java delete mode 100644 spring-5/src/main/resources/autogenkey-db.properties delete mode 100644 spring-5/src/main/resources/autogenkey-schema.sql delete mode 100644 spring-5/src/test/java/com/baeldung/jdbc/autogenkey/GetAutoGenKeyByJDBCIntTest.java diff --git a/persistence-modules/spring-jdbc/README.md b/persistence-modules/spring-jdbc/README.md index 1433344b7a..437a1312da 100644 --- a/persistence-modules/spring-jdbc/README.md +++ b/persistence-modules/spring-jdbc/README.md @@ -4,3 +4,4 @@ - [Spring JDBC](https://www.baeldung.com/spring-jdbc-jdbctemplate) - [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) +- [Obtaining Auto-generated Keys in Spring JDBC](https://www.baeldung.com/spring-jdbc-autogenerated-keys) diff --git a/persistence-modules/spring-jpa/README.md b/persistence-modules/spring-jpa/README.md index 937890cd13..db70259005 100644 --- a/persistence-modules/spring-jpa/README.md +++ b/persistence-modules/spring-jpa/README.md @@ -6,7 +6,6 @@ - [Sorting with JPA](https://www.baeldung.com/jpa-sort) - [Self-Contained Testing Using an In-Memory Database](https://www.baeldung.com/spring-jpa-test-in-memory-database) - [A Guide to Spring AbstractRoutingDatasource](https://www.baeldung.com/spring-abstract-routing-data-source) -- [Obtaining Auto-generated Keys in Spring JDBC](https://www.baeldung.com/spring-jdbc-autogenerated-keys) - [Spring Data Annotations](http://www.baeldung.com/spring-data-annotations) - More articles: [[next -->]](/spring-jpa-2) diff --git a/spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositoryJDBCTemplate.java b/spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositoryJDBCTemplate.java deleted file mode 100644 index cf0dbe4681..0000000000 --- a/spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositoryJDBCTemplate.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.baeldung.jdbc.autogenkey.repository; - -import java.sql.PreparedStatement; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.support.GeneratedKeyHolder; -import org.springframework.jdbc.support.KeyHolder; -import org.springframework.stereotype.Repository; - -@Repository -public class MessageRepositoryJDBCTemplate { - - @Autowired - JdbcTemplate jdbcTemplate; - - final String INSERT_MESSAGE_SQL = "insert into sys_message (message) values(?) "; - - public long insert(final String message) { - - KeyHolder keyHolder = new GeneratedKeyHolder(); - - jdbcTemplate.update(connection -> { - PreparedStatement ps = connection.prepareStatement(INSERT_MESSAGE_SQL); - ps.setString(1, message); - return ps; - }, keyHolder); - - return (long) keyHolder.getKey(); - } - - final String SELECT_BY_ID = "select message from sys_message where id = ?"; - - public String getMessageById(long id) { - return this.jdbcTemplate.queryForObject(SELECT_BY_ID, String.class, new Object[] { id }); - } - -} diff --git a/spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositorySimpleJDBCInsert.java b/spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositorySimpleJDBCInsert.java deleted file mode 100644 index 022ea29ed6..0000000000 --- a/spring-5/src/main/java/com/baeldung/jdbc/autogenkey/repository/MessageRepositorySimpleJDBCInsert.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.baeldung.jdbc.autogenkey.repository; - -import java.util.HashMap; -import java.util.Map; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.simple.SimpleJdbcInsert; -import org.springframework.stereotype.Repository; - -@Repository -public class MessageRepositorySimpleJDBCInsert { - - SimpleJdbcInsert messageInsert; - - @Autowired - public MessageRepositorySimpleJDBCInsert(DataSource dataSource) { - messageInsert = new SimpleJdbcInsert(dataSource).withTableName("sys_message").usingGeneratedKeyColumns("id"); - } - - public long insert(String message) { - Map parameters = new HashMap(1); - parameters.put("message", message); - Number newId = messageInsert.executeAndReturnKey(parameters); - return (long) newId; - } - -} diff --git a/spring-5/src/main/resources/autogenkey-db.properties b/spring-5/src/main/resources/autogenkey-db.properties deleted file mode 100644 index 3e1a088dc1..0000000000 --- a/spring-5/src/main/resources/autogenkey-db.properties +++ /dev/null @@ -1,9 +0,0 @@ -spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE -spring.datasource.username=sa -spring.datasource.password= -spring.datasource.driverClassName=org.h2.Driver -spring.jpa.hibernate.ddl-auto=create -spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect - -spring.datasource.initialize=true -spring.datasource.schema=classpath:autogenkey-schema.sql diff --git a/spring-5/src/main/resources/autogenkey-schema.sql b/spring-5/src/main/resources/autogenkey-schema.sql deleted file mode 100644 index 925b27143c..0000000000 --- a/spring-5/src/main/resources/autogenkey-schema.sql +++ /dev/null @@ -1,5 +0,0 @@ -CREATE TABLE IF NOT EXISTS sys_message ( - id bigint(20) NOT NULL AUTO_INCREMENT, - message varchar(100) NOT NULL, - PRIMARY KEY (id) -); \ No newline at end of file diff --git a/spring-5/src/test/java/com/baeldung/jdbc/autogenkey/GetAutoGenKeyByJDBCIntTest.java b/spring-5/src/test/java/com/baeldung/jdbc/autogenkey/GetAutoGenKeyByJDBCIntTest.java deleted file mode 100644 index 14d2fb736b..0000000000 --- a/spring-5/src/test/java/com/baeldung/jdbc/autogenkey/GetAutoGenKeyByJDBCIntTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.baeldung.jdbc.autogenkey; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import com.baeldung.jdbc.autogenkey.repository.MessageRepositoryJDBCTemplate; -import com.baeldung.jdbc.autogenkey.repository.MessageRepositorySimpleJDBCInsert; - -@RunWith(SpringRunner.class) -@Ignore -public class GetAutoGenKeyByJDBCIntTest { - - @Configuration - @EnableAutoConfiguration - @PropertySource("classpath:autogenkey-db.properties") - @ComponentScan(basePackages = { "com.baeldung.jdbc.autogenkey.repository" }) - public static class SpringConfig { - - } - - @Autowired - MessageRepositorySimpleJDBCInsert messageRepositorySimpleJDBCInsert; - - @Autowired - MessageRepositoryJDBCTemplate messageRepositoryJDBCTemplate; - - final String MESSAGE_CONTENT = "Test"; - - @Test - public void insertJDBC_whenLoadMessageByKey_thenGetTheSameMessage() { - long key = messageRepositoryJDBCTemplate.insert(MESSAGE_CONTENT); - String loadedMessage = messageRepositoryJDBCTemplate.getMessageById(key); - - assertEquals(MESSAGE_CONTENT, loadedMessage); - - } - - @Test - public void insertSimpleInsert_whenLoadMessageKey_thenGetTheSameMessage() { - long key = messageRepositorySimpleJDBCInsert.insert(MESSAGE_CONTENT); - String loadedMessage = messageRepositoryJDBCTemplate.getMessageById(key); - - assertEquals(MESSAGE_CONTENT, loadedMessage); - } - -}