jdbc : select

This commit is contained in:
haerong22
2022-04-19 16:52:45 +09:00
parent ce60ed2411
commit ccef2b749d
3 changed files with 60 additions and 20 deletions

View File

@@ -1,9 +1,11 @@
package com.example.jdbc.domain; package com.example.jdbc.repository;
import com.example.jdbc.connection.DBConnectionUtil; import com.example.jdbc.connection.DBConnectionUtil;
import com.example.jdbc.domain.Member;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.sql.*; import java.sql.*;
import java.util.NoSuchElementException;
/** /**
* JDBC - DriverManager 사용 * JDBC - DriverManager 사용
@@ -32,6 +34,35 @@ public class MemberRepositoryV0 {
} }
} }
public Member findById(String memberId) throws SQLException {
String sql = "select * from member where member_id = ?";
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, memberId);
rs = pstmt.executeQuery();
if (rs.next()) {
Member member = new Member();
member.setMemberId(rs.getString("member_id"));
member.setMoney(rs.getInt("money"));
return member;
} else {
throw new NoSuchElementException("member not found memberId=" + memberId);
}
} catch (SQLException e) {
log.error("db error", e);
throw e;
} finally {
close(con, pstmt, rs);
}
}
private void close(Connection con, Statement stmt, ResultSet rs) { private void close(Connection con, Statement stmt, ResultSet rs) {
if (rs != null) { if (rs != null) {

View File

@@ -1,19 +0,0 @@
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);
}
}

View File

@@ -0,0 +1,28 @@
package com.example.jdbc.repository;
import com.example.jdbc.domain.Member;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import java.sql.SQLException;
@Slf4j
class MemberRepositoryV0Test {
MemberRepositoryV0 repository = new MemberRepositoryV0();
@Test
void crud() throws SQLException {
// save
Member member = new Member("memberV0", 10000);
repository.save(member);
// findById
Member findMember = repository.findById(member.getMemberId());
log.info("findMember={}", findMember);
Assertions.assertThat(findMember).isEqualTo(member);
}
}