1. model 작성 - Java에서 Blog 클래스 작성
1) 필드 선언 - 데이터베이스 테이블의 컬럼들
2) 생성자 작성
3) getters & setters 작성
4) toString() 오버라이드
5) Builder 디자인 패턴 작성
* Timestamp 타입을 LocalDateTime 타입으로 변화하기 위해 createdTime과 modifiedTime메서드는 오버라이드 해준다.
6) 데이터베이스 테이블의 테이블 이름과 컬럼 이름들을 상수로 정의하는 내부 클래스 작성
* 클래스 이름 : Entity
2. View 작성 - Window Builder 활용 메인 작성
1) 컨텐트 패널 - border layout 사용
2) north - JPanel 삽입 - 콤보박스, 텍스트필드, 버튼 삽입
3) center - JScrollPane 삽입 - Viewport에 테이블 삽입
4) south - JPanel 삽입 - 버튼 삽입
* Components 창에 표시되는 객체 이름 위로 드래그 드롭 해도 추가됨.
5) JComboBox의 아이템 이름들을 상수(String 타입 배열)로 선언
* 배열 이름 : SEARCH_TYPE
6) JTable의 컬럼 이름들을 상수(String 타입 배열) 로 선언
* 배열 이름 : COLUMN_TYPE
7) DefaultTableModel 클래스 객체를 필드에 선언
8) JComboBox의 아이템 설정 - DefaultComboBoxModel 클래스 import 후 객체 생성 - JComboBox의 setModel() 메서드 호출해서 모델 적용
* 5)에서 만든 SEARCH_TYPE 상수를 아규먼트로 활용
9) JTable의 컬럼 이름 설정
(1) 6)에서 만든 COLUMN_TYPE 상수를 아규먼트로 사용하여 DefaultTableModel 클래스 생성자 호출
(2) JTable의 setModel() 메서드 호출해서 모델 적용
=== 3.6) 완료 후 ===
10) BlogDao 객체를 필드에 선언 - 생성자에서 초기화
11) initializeTable() 메서드 작성 - 생성자에서 호출
3. Controller 작성 - Enum 활용하여 싱글턴 객체로 작성
1) 필드 선언 - 열거 상수 1개
* 열거 상수 이름 : INSTANCE
2) 생성자 작성
(1) DriverManager 클래스 import - try/catch문으로 예외 처리
(2) DriverManager 클래스의 registerDriver() 메서드 호출 후 OracleDriver객체를 아규먼트로 넣어 오라클 JDBC 드라이버를 등록.
3) closeResources() 메서드 작성
(1) 리턴 타입 : void
(2) 드라이버의 리소스(Connection, Statement, ResultSet)를 해제하는데 사용하기 위한 메서드
(3) ResultSet는 사용하지 않는 경우도 있으므로 파라미터가 2개인 메서드도 overroading으로 만든다.
4) getBlogFromResultSet() 메서드 작성
(1) 리턴 타입 : 모델 클래스(Blog)
(2) 1.6) 에서 만든 내부 클래스(Entity)를 import
(3) 데이터베이스 테이블의 컬럼들(Blog의 필드들)과 동일한 데이터타입의 지역 변수들을 선언, ResultSet 클래스의 getter들을 사용해서 초기화
(4) 초기화한 변수들을 모델 클래스(Blog)의 내부 클래스에서 작성한 builder() 메서드를 호출해서 Blog 타입 객체 생성 후 리턴
5) 전체 목록 보기에서 사용할 SQL문장을 String 타입 상수로 선언
6) read() 메서드 작성 (전체 검색 기능)
(1) 리턴 타입 : List<Blog>
(2) 블로그를 저장할 Blog 타입 리스트 선언
(3) Connection, PreparedStatement, ResultSet 타입 객체 선언
(4) 이전에 인터페이스로 만들어둔 SQL 접속 정보 import
(5) 오라클 JDBC 드라이버 등록
* Connection 객체 초기화
(6) 5)에서 작성한 문자열을 아규먼트로 Statement 객체 생성
* Statement 객체는 DB 서버로 전송됨
(7) 작성된 SQL 문장을 DB 서버로 전송해서 실행
* Statement 인스턴스의 executeQuery() 메서드 호출, ResultSet 객체 생성
(8) while 반복문과 ResultSet 클래스의 next() 메서드를 사용해서 DB에서 검색한 결과를 처리
* getBlogFromResultSet() 메서드를 사용하여 select한 내용들을 (2)에서 선언한 리스트에 저장
(9) 사용했던 리소스들을 해제(close)
(10) (8)에서 초기화?된 리스트를 리턴
'Project' 카테고리의 다른 글
문제해결(1) - @WebServlet의 urlPatterns 속성 (0) | 2025.01.08 |
---|---|
241127 개인 공부 (0) | 2024.11.27 |
Java 공부 초기 세팅 (0) | 2024.11.26 |
241121 ~ 22 블로그 프로그램 만들기(2) (2) | 2024.11.21 |
Window 방화벽 인바운드 규칙 생성 방법 (0) | 2024.11.19 |