diff --git a/jdbc/src/main/java/com/example/jdbc/domain/Member.java b/jdbc/src/main/java/com/example/jdbc/domain/Member.java new file mode 100644 index 00000000..990e1c89 --- /dev/null +++ b/jdbc/src/main/java/com/example/jdbc/domain/Member.java @@ -0,0 +1,18 @@ +package com.example.jdbc.domain; + +import lombok.Data; + +@Data +public class Member { + + private String memberId; + private int money; + + public Member() { + } + + public Member(String memberId, int money) { + this.memberId = memberId; + this.money = money; + } +} diff --git a/jdbc/src/main/java/com/example/jdbc/domain/MemberRepositoryV0.java b/jdbc/src/main/java/com/example/jdbc/domain/MemberRepositoryV0.java new file mode 100644 index 00000000..5666d048 --- /dev/null +++ b/jdbc/src/main/java/com/example/jdbc/domain/MemberRepositoryV0.java @@ -0,0 +1,65 @@ +package com.example.jdbc.domain; + +import com.example.jdbc.connection.DBConnectionUtil; +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; + } finally { + close(con, pstmt, null); + } + } + + private void close(Connection con, Statement stmt, ResultSet rs) { + + if (rs != null) { + try { + rs.close(); + } catch (SQLException e) { + log.error("error", e); + } + } + + if (stmt != null) { + try { + stmt.close(); + } catch (SQLException e) { + log.error("error", e); + } + } + + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + log.error("error", e); + } + } + } + + private Connection getConnection() { + return DBConnectionUtil.getConnection(); + } +} diff --git a/jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java b/jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java new file mode 100644 index 00000000..9ced64de --- /dev/null +++ b/jdbc/src/test/java/com/example/jdbc/domain/MemberRepositoryV0Test.java @@ -0,0 +1,19 @@ +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