diff --git a/jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java b/jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java index 985e23db..6e0115b3 100644 --- a/jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java +++ b/jdbc/src/main/java/com/example/jdbc/repository/MemberRepositoryV0.java @@ -63,6 +63,47 @@ public class MemberRepositoryV0 { } } + public void update(String memberId, int money) throws SQLException { + String sql = "update member set money=? where member_id=?"; + + Connection con = null; + PreparedStatement pstmt = null; + + try { + con = getConnection(); + pstmt = con.prepareStatement(sql); + pstmt.setInt(1, money); + pstmt.setString(2, memberId); + + int result = pstmt.executeUpdate(); + log.info("resultSize={}", result); + } catch (SQLException e) { + log.error("db error", e); + throw e; + } finally { + close(con, pstmt, null); + } + } + + public void delete(String memberId) throws SQLException { + String sql = "delete from member where member_id=?"; + + Connection con = null; + PreparedStatement pstmt = null; + + try { + con = getConnection(); + pstmt = con.prepareStatement(sql); + pstmt.setString(1, memberId); + pstmt.executeUpdate(); + } catch (SQLException e) { + log.error("db error", e); + throw e; + } finally { + close(con, pstmt, null); + } + } + private void close(Connection con, Statement stmt, ResultSet rs) { if (rs != null) { diff --git a/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java b/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java index 8dcba2db..5c40837a 100644 --- a/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java +++ b/jdbc/src/test/java/com/example/jdbc/repository/MemberRepositoryV0Test.java @@ -6,6 +6,9 @@ import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.sql.SQLException; +import java.util.NoSuchElementException; + +import static org.assertj.core.api.Assertions.*; @Slf4j class MemberRepositoryV0Test { @@ -15,14 +18,25 @@ class MemberRepositoryV0Test { @Test void crud() throws SQLException { // save - Member member = new Member("memberV0", 10000); + Member member = new Member("memberV13", 10000); repository.save(member); // findById Member findMember = repository.findById(member.getMemberId()); log.info("findMember={}", findMember); - Assertions.assertThat(findMember).isEqualTo(member); + assertThat(findMember).isEqualTo(member); + + // update - money : 10000 -> 20000 + repository.update(member.getMemberId(), 20000); + Member updatedMember = repository.findById(member.getMemberId()); + assertThat(updatedMember.getMoney()).isEqualTo(20000); + + // delete + repository.delete(member.getMemberId()); + assertThatThrownBy(()-> repository.findById(member.getMemberId())) + .isInstanceOf(NoSuchElementException.class); + } } \ No newline at end of file