제가 맡은 모든 지점 조회 기능을 구현해보았습니다.
이런 구조로 Application에서 Database까지 연결이 되어있기 때문에
각각 파트에서의 적절한 처리가 필요합니다.

| BankRepository |
@Override
public List<Bank> findAllBanks() throws Exception {
List<Bank> banks = new ArrayList<>();
String sql = "SELECT * FROM Bank";
try (Connection conn = DB.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
banks.add(extractBank(rs));
}
}
return banks;
}
Bank 테이블에 저장된 모든 지점 정보를 가져온 후, ArrayList에 결과를 저장한 후 반환해줍니다.
여기서 ArrayList를 사용한 이유는
다른 기능에서도 이 기능을 많이 이용할 것이기 때문에 순서가 계속 바뀌는것 보단 순서를 보장 하는것이 기능을 추가하는데에 더욱 유용할거라고 생각했고,
단지 조회만 하고 지점 추가나 삭제를 하지 않기 때문에 성능 면에서 다른 자료구조 보다 ArrayList가 적절하다고 판단했습니다.
| BankService |
@Override
public List<Bank> findAllBanks() throws Exception {
return bankRepository.findAllBanks();
}
Service에선 단순히 Repository에서 List를 받아 Controller에게 넘겨주는 역할만 하도록 구현하였습니다.
| BankController |
@Override
public List<Bank> findAllBanks() throws Exception{
List<Bank> bankList =bankService.findAllBanks();
bankList.forEach(bank -> System.out.print(bank.getId()+"."+bank.getName()+" "));
System.out.println();
return bankList;
}
Controller에서 Service에서 받아온 List를 출력하도록 구현하였습니다.
Bank의 id와 이름을 출력하도록 하였습니다.


다음과 같이 DB에 저장된 모든 지점을 불러오는데에 성공했습니다.
'🚀Project' 카테고리의 다른 글
| Trouble Shooting (0) | 2024.04.22 |
|---|---|
| [은행시스템] 코드 리팩토링 #5 (0) | 2024.04.01 |
| [은행시스템] 최종 #4 (0) | 2024.03.31 |
| [은행시스템] 방문 예약 기능 #3 (0) | 2024.03.31 |
| [은행시스템] 주제선정 및 ERD설계 #1 (0) | 2024.03.31 |