Back-End/JAVA
[Java] 고객 관리 (2) - select
09009
2023. 4. 16. 19:46
데이터 조회 - select
✍ Ex01.java
package CustomerManagement;
import java.util.Scanner;
// 입력,수정,삭제, 조회 요청을 받는 클래스
// ex) 주문을 받는 클래스
public class Ex01 {
private static CustomerServiceImpl cs = new CustomerServiceImpl();
// 화면에서 받아오는게 정석인데 콘솔에서 받아오므로 scanner를 불러오는 것이다.
private static Scanner sc;
public static void main(String[] args) {
sc = new Scanner(System.in);
while(true) {
help();
String command = sc.nextLine();
if (command.equals("6")) break;
else if (command.equals("1")) insert();
else if (command.equals("2")) update();
else if (command.equals("3")) select();
else if (command.equals("4")) delete();
else if (command.equals("5")) list(); // Ex01.list()
}
System.out.println("프로그램 종료");
sc.close();
}
private static void help() {
System.out.println("다음 중에서 선택하세요");
System.out.println("1. 입력");
System.out.println("2. 수정");
System.out.println("3. 조회");
System.out.println("4. 삭제");
System.out.println("5. 목록");
System.out.println("6. 종료");
System.out.print("명령번호 → ");
}
}
작업을 수행할, 아직 선언하지 않았지만 생성할 예정인 메서드들을 미리 작성한다.
아직 메서드들을 선언해주지 않았으므로 에러가 표시되는 것을 확인할 수 있다.
이제부터 메서드 하나하나씩 생성할 예정이다.
select 메서드 생성 ( 조회 )
Ex01.java는 데이터를 조회하는 작업을 업무처리를 위해 만든 클래스인 CustomerServiceImpl.java에게
넘긴다.
아직 CustomerServiceImpl.java에 select 메서드가 선언되지 않아 에러 표시가 발생한다.
이제 CustomerServiceImpl.java에 select 메서드를 선언해주도록 한다.
✍ CustomerServiceImpl.java
CustomerServiceImpl.java에서는 DB와 연동하여 데이터를 조회하는 업무를 수행하기 위해 만든 DAO 클래스 (CustomerDaoImpl.java)에 select 메서드를 넘긴다.
✍ CustomerDaoImpl.java
// 위의 중복된 내용 생략
public Customer select(String id) {
// 메서드의 반환형이 Customer 객체이므로 인스턴스를 생성한다.
Customer customer = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "select * from customer where id=?";
Connection conn = getConnection();
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if (rs.next()) { // 데이터가 존재하면 채우고 없으면 null을 전달
customer = new Customer();
customer.setId(rs.getString("id"));
customer.setPass(rs.getString("pass"));
customer.setEmail(rs.getString("email"));
customer.setName(rs.getString("name"));
customer.setReg_date(rs.getDate("reg_date"));
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (Exception e) { }
}
return customer;
}
}