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

III님의 프로필 이미지
III

작성한 질문수

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

repository관련 질문

작성

·

154

·

수정됨

0

repository 코드입니다.

private static long sequence = 0L;
private DataSource dataSource;

public DbMemberRepository(DataSource dataSource) {
    this.dataSource = dataSource;
}

public void save(String memberId, String password) throws SQLException {
    String sql = "insert into member(id, member_id, password) values(?,?,?)";


    try {
        Connection con = null;
        PreparedStatement pstmt;
        con = getConnection();
        pstmt = con.prepareStatement(sql);
        pstmt.setLong(1, ++sequence);
        pstmt.setString(2, memberId);
        pstmt.setString(3, password);

        log.info(String.valueOf(sequence));


        pstmt.execute();
    } catch (SQLException e) {
        throw new SQLException("sql exception");
    }

}


@Test
void save() throws SQLException {
    memberRepository.save("test1", "test1!");
    //memberRepository.save("test2", "test2!");
}

 

 위 코드에서 save테스트를 돌릴 때 save test를 두번 누르면 sequence(id)가 1, 2로 저장된다고 생각했는데 에러가 나고 test코드내에서 memberRepository.save를 두번적으면 되더라고요. 왜 전자처럼 두번누르는 것은 예외가 나나요?

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. III님

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

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

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

https://bit.ly/3fX6ygx

 

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

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

 

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

III님의 프로필 이미지
III

작성한 질문수

질문하기