유저 관련 기능은 앞서 만들어 뒀던 DAOContext의 기능을 그대로 가져다 쓸 것이기 때문에 코드만 올려 둔다.
@Repository
public class UserDAO {
//daoContext 선언 및 주입
Function<ResultSet, User> userMapper = rs ->{
User user = null;
try {
user = new User();
user.setId(rs.getString("id"));
user.setPassword(rs.getString("password"));
user.setIdx(rs.getInt("idx"));
} catch (SQLException e) {
e.printStackTrace();
}
return user;
};
public void save(User user) throws SQLException {
String sql = "insert into users (id, password) VALUES (?, ?)";
int generatedKey = daoContext
.executeSQLAndReturn(sql,
user.getId(),
user.getPassword());
user.setIdx(generatedKey);
}
public User findUserByIdx(int idx) throws SQLException {
String sql = "select * from users where idx = ?";
User user = daoContext.getObject(sql,
userMapper, idx);
return user;
}
public void update(User user) throws SQLException {
String sql =
"update users set id = ?, password = ? where idx = ?";
daoContext.update(sql, user.getId(),
user.getPassword(),
Integer.toString(user.getIdx()));
}
public void delete(int idx) throws SQLException {
String sql = "delete from users where idx = ?";
daoContext.delete(sql, Integer.toString(idx));
}
}
테스트 데이터 정리
지금은 테스트 코드들을 실행할 때 마다 테스트 데이터들이 데이터 베이스에 남아 있게 된다.
각각의 테스트가 끝난 이후 해당 테스트에 대한 데이터가 남아있을 필요가 없으므로 매 테스트가 끝날 때 마다 테스트 데이터를 삭제시켜 주자.
//PostingDAOTest
@AfterEach
public void cleanUp() throws SQLException {
postingDAO.delete(posting.getIdx());
userDAO.delete(user.getIdx());
}
//UserDAOTest
@AfterEach
public void cleanUp() throws SQLException {
userDAO.delete(user.getIdx());
}
'프로젝트 > selfmade Blog - V1 (deprecated)' 카테고리의 다른 글
8. 사용자의 입력 데이터 서버에 저장하기 (0) | 2023.08.31 |
---|---|
7. MVC 구현 (0) | 2023.08.20 |
5. 블로그 글 수정, 삭제 기능 (0) | 2023.08.13 |
4. 스프링을 사용한 의존성 주입 (0) | 2023.08.12 |
3. 블로그 글 작성 기능 - 조회 기능 및 중복 Context 추출 (0) | 2023.08.11 |
댓글