티스토리 뷰
모든 값 조회
public List<Member> findAllMembers() {
// 데이터베이스에 전달할 SQL을 정의합니다.
String sql = "select * from member";
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = getConnection();
// 데이터베이스에 전달할 SQL과 파라미터로 전달할 데이터들을 준비합니다.
pstmt = con.prepareStatement(sql);
// 준비된 SQL을 커넥션을 통해 실제 데이터베이스에 전달하고 결과를 얻습니다.
rs = pstmt.executeQuery();
List<Member> members = new ArrayList<>();
// 결과가 있으면 각 회원의 정보를 객체로 만들어 리스트에 추가합니다.
while (rs.next()) {
Member member = new Member();
member.setId(rs.getString("id"));
member.setName(rs.getString("name"));
// 다른 필드들에 대한 처리도 추가 가능
members.add(member);
}
return members;
} catch (SQLException e) {
log.error("데이터베이스 오류", e);
throw new RuntimeException("데이터베이스 오류", e);
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
log.error("리소스 닫기 오류", ex);
throw new RuntimeException("리소스 닫기 오류", ex);
}
}
}
특정 값 조회
public Member findById(String memberId) {
// 데이터베이스에 전달할 SQL을 정의합니다.
String sql = "select * from member where member_id = ?";
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = getConnection();
// 데이터베이스에 전달할 SQL과 파라미터로 전달할 데이터들을 준비합니다.
pstmt = con.prepareStatement(sql);
// SQL의 첫 번째 ? 에 값을 지정합니다.
pstmt.setString(1, memberId);
// 준비된 SQL을 커넥션을 통해 실제 데이터베이스에 전달하고 결과를 얻습니다.
rs = pstmt.executeQuery();
// 결과가 있으면 해당 회원의 정보를 객체로 만들어 반환합니다.
if (rs.next()) {
Member member = new Member();
member.setMemberId(rs.getString("member_id"));
member.setMoney(rs.getInt("money"));
// 다른 필드들에 대한 설정도 추가해야 합니다.
// member.setFieldName(rs.getType("column_name"));
return member;
} else {
// 결과가 없으면 해당 ID의 회원이 없다는 것을 나타내기 위해 null을 반환합니다.
return null;
}
} catch (SQLException e) {
log.error("데이터베이스 오류", e);
throw new RuntimeException("데이터베이스 오류", e);
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
log.error("리소스 닫기 오류", ex);
throw new RuntimeException("리소스 닫기 오류", ex);
}
}
}
insert구문
public Member insertMember(Member newMember) throws SQLException {
// 데이터베이스에 전달할 SQL을 정의합니다.
String sql = "insert into member(id, name) values (?, ?)";
Connection con = null;
PreparedStatement pstmt = null;
try {
con = getConnection();
// 데이터베이스에 전달할 SQL과 파라미터로 전달할 데이터들을 준비합니다.
pstmt = con.prepareStatement(sql);
// SQL의 각 ? 에 값을 지정합니다.
pstmt.setString(1, newMember.getId());
pstmt.setString(2, newMember.getName());
// 준비된 SQL을 커넥션을 통해 실제 데이터베이스에 전달하고 영향 받은 DB row 수를 반환합니다.
pstmt.executeUpdate();
// 회원 추가 후, 추가된 회원 정보를 반환합니다.
return newMember;
} catch (SQLException e) {
log.error("데이터베이스 오류", e);
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
throw new RuntimeException("리소스 닫기 오류", ex);
}
}
}
업데이트
public Member update(Member member) throws SQLException {
// 데이터베이스에 전달할 SQL을 정의합니다.
String sql = "update member set money = ? where member_id = ?";
Connection con = null;
PreparedStatement pstmt = null;
try {
con = getConnection();
// 데이터베이스에 전달할 SQL과 파라미터로 전달할 데이터를 준비합니다.
pstmt = con.prepareStatement(sql);
// SQL의 첫 번째 ? 에 값을 설정합니다.
pstmt.setInt(1, member.getMoney());
pstmt.setString(2, member.getMemberId());
// 준비된 SQL을 커넥션을 통해 실제 데이터베이스에 전달하고 영향 받은 DB row 수를 반환합니다.
pstmt.executeUpdate();
return member;
} catch (SQLException e) {
log.error("데이터베이스 오류", e);
throw e;
} finally {
try {
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
} catch (SQLException ex) {
log.error("리소스 닫기 오류", ex);
}
}
}
삭제
public void deleteMember(String memberId) {
// 데이터베이스에 전달할 SQL을 정의합니다.
String sql = "delete from member where member_id = ?";
Connection con = null;
PreparedStatement pstmt = null;
try {
con = getConnection();
// 데이터베이스에 전달할 SQL과 파라미터로 전달할 데이터를 준비합니다.
pstmt = con.prepareStatement(sql);
// SQL의 첫 번째 ? 에 값을 지정합니다.
pstmt.setString(1, memberId);
// 준비된 SQL을 커넥션을 통해 실제 데이터베이스에 전달하고 영향 받은 DB row 수를 확인하지 않습니다.
pstmt.executeUpdate();
} catch (SQLException e) {
log.error("데이터베이스 오류", e);
throw new RuntimeException("데이터베이스 오류", e);
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
log.error("리소스 닫기 오류", ex);
throw new RuntimeException("리소스 닫기 오류", ex);
}
}
}
'코딩 > spring' 카테고리의 다른 글
[21주 2일차] 프로젝트 (1) | 2024.02.27 |
---|---|
[21주 1일차] 팀별 순위 (1) | 2024.02.26 |
[20주 5일차] 경기 추가 (0) | 2024.02.23 |
[20주 5일차] 경기 매칭하기 (0) | 2024.02.23 |
[20주 3일차] 하나의 컨트롤러에서 여러 Service 클래스 참조하기 (0) | 2024.02.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday