From ccef2b749d9a30b9ef971ccc57cc0c623d4b9dd5 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Tue, 19 Apr 2022 16:52:45 +0900 Subject: [PATCH] jdbc : select --- .../MemberRepositoryV0.java | 33 ++++++++++++++++++- .../jdbc/domain/MemberRepositoryV0Test.java | 19 ----------- .../repository/MemberRepositoryV0Test.java | 28 ++++++++++++++++ 3 files changed, 60 insertions(+), 20 deletions(-) rename jdbc/src/main/java/com/example/jdbc/{domain => repository}/MemberRepositoryV0.java (59%) delete mode 100644 jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java create mode 100644 jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java diff --git a/jdbc/src/main/java/com/example/jdbc/domain/MemberRepositoryV0.java b/jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java similarity index 59% rename from jdbc/src/main/java/com/example/jdbc/domain/MemberRepositoryV0.java rename to jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java index 5666d048..985e23db 100644 --- a/jdbc/src/main/java/com/example/jdbc/domain/MemberRepositoryV0.java +++ b/jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java @@ -1,9 +1,11 @@ -package com.example.jdbc.domain; +package com.example.jdbc.repository; import com.example.jdbc.connection.DBConnectionUtil; +import com.example.jdbc.domain.Member; import lombok.extern.slf4j.Slf4j; import java.sql.*; +import java.util.NoSuchElementException; /** * JDBC - DriverManager 사용 @@ -32,6 +34,35 @@ public class MemberRepositoryV0 { } } + public Member findById(String memberId) throws SQLException { + String sql = "select * from member where member_id = ?"; + + Connection con = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + + try { + con = getConnection(); + pstmt = con.prepareStatement(sql); + pstmt.setString(1, memberId); + + rs = pstmt.executeQuery(); + if (rs.next()) { + Member member = new Member(); + member.setMemberId(rs.getString("member_id")); + member.setMoney(rs.getInt("money")); + return member; + } else { + throw new NoSuchElementException("member not found memberId=" + memberId); + } + } catch (SQLException e) { + log.error("db error", e); + throw e; + } finally { + close(con, pstmt, rs); + } + } + private void close(Connection con, Statement stmt, ResultSet rs) { if (rs != null) { diff --git a/jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java b/jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java deleted file mode 100644 index 9ced64de..00000000 --- a/jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.jdbc.domain; - -import org.junit.jupiter.api.Test; - -import java.sql.SQLException; - -import static org.junit.jupiter.api.Assertions.*; - -class MemberRepositoryV0Test { - - MemberRepositoryV0 repository = new MemberRepositoryV0(); - - @Test - void crud() throws SQLException { - Member member = new Member("memberV0", 10000); - repository.save(member); - } - -} \ No newline at end of file diff --git a/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java b/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java new file mode 100644 index 00000000..8dcba2db --- /dev/null +++ b/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java @@ -0,0 +1,28 @@ +package com.example.jdbc.repository; + +import com.example.jdbc.domain.Member; +import lombok.extern.slf4j.Slf4j; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.sql.SQLException; + +@Slf4j +class MemberRepositoryV0Test { + + MemberRepositoryV0 repository = new MemberRepositoryV0(); + + @Test + void crud() throws SQLException { + // save + Member member = new Member("memberV0", 10000); + repository.save(member); + + // findById + Member findMember = repository.findById(member.getMemberId()); + log.info("findMember={}", findMember); + + Assertions.assertThat(findMember).isEqualTo(member); + } + +} \ No newline at end of file