JDBC - 수정, 삭제

박찬우·2024년 2월 1일

스프링 DB

목록 보기
4/53

회원 리포지토리

@Slf4j
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);
            pstmt.executeUpdate();
        } 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);
        }

    }
	
	...
}

TEST

@Test
void crud() throws SQLException {
	// create
	Member member = new Member("memberV0", 10000);
	repository.save(member);

	// read
	Member findMember = repository.findById(member.getMemberId());
	Assertions.assertThat(member.getMemberId()).isEqualTo(findMember.getMemberId());

	// update
	repository.update(findMember.getMemberId(), 20000);
	Member updateMember = repository.findById(findMember.getMemberId());
	Assertions.assertThat(updateMember.getMoney()).isEqualTo(20000);

	// delete
	repository.delete(findMember.getMemberId());
	Assertions.assertThatThrownBy(() -> repository.findById(findMember.getMemberId()))
			.isInstanceOf(NoSuchElementException.class);
}
profile
진짜 개발자가 되어보자

0개의 댓글