인프런 커뮤니티 질문&답변

seoyoungkim003님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

JDBC 개발 - 등록

jdbc 등록 강의에서 레포지터리 테스트코드 돌려서 오류는 안뜨는데 테이블에 값이 안들어가져요

해결된 질문

작성

·

75

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
jdbc 강의중 등록 이라는 강의 순서에서 MemberRepositoryV0 테스트 돌려서 오류는 안나는데 Member라는 h2의 테이블에 아무 값도 안들어가졌습니다. MemberRepositoryV0 코드는 강사님이 알려주신대로 똑같이 했는데 오류가 계속 나서 ppt에 있는 코드 가져와서 오류뜨는거 한개 정도만 잡았는데 레포지터리 코드가 이상한 걸까요?

 


Repository코드

package hello.jdbc.repository;
import hello.jdbc.connection.DBConnectionUtil;
import hello.jdbc.domain.Member;
import lombok.extern.slf4j.Slf4j;
import java.sql.*;

/**
 * JDBC - DriverManager 사용
 */
@Slf4j
public class MemberRepositoryV0 {
    public Member save(Member member) throws SQLException {
        String sql = "insert into member(member_id, money) values(?, ?)";
        Connection con = null;
        PreparedStatement pstmt = null;
        try {
            con = getConnection();
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, member.getMemberId());
            pstmt.setInt(2, member.getMoney());
            pstmt.executeUpdate();
            return member;
        } catch (SQLException e) {
            log.error("db error", e);
            throw e;
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        } finally {
            close(con, pstmt, null);
        }
    }

    private void close(Connection con, Statement stmt, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                log.info("error", e);
            }
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                log.info("error", e);
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                log.info("error", e);
            }
        }
    }

    private Connection getConnection() throws IllegalAccessException {
        return DBConnectionUtil.getConnection();
    }
}

 

답변 1

0

안녕하세요. seoyoungkim003님, 공식 서포터즈 OMG입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

image.png

액세스 권한 요청 화면 출력하지 않도록 링크 있는 사용자에게 권한 부여 해주세요 😀

앗 오늘 다시 h2키고 들어가보니까 값이 들어가지네요..

죄송합니다 ㅠ

중요한건 다음에 질문드릴땐 꼭 공유링크 남기겠습니다

빠른 답변 감사합니다!