ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDBC 콘솔로 간단한 게시판 목록 만들어보기
    JDBC 2022. 2. 3. 19:49

    **유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.

     

     

    새로운 클래스를 하나 만들어준다.

     

    그리고 program5 클래스를 하나 만들어준다,

    여기서는 콘솔 입출력과 notice 관리를 위해

    package ex11;
    
    import com.jae.app.console.NoticeConsole;
    
    public class Program5 {
    
    	
    		public static void main (String[] args) {
    			
    			//notice를 관리 할 콘솔 만들어주기
    			NoticeConsole console = new NoticeConsole();
    			//이 콘솔을 통해서 노티스의 목록을 프린트해달라고 요청하기
    			console.printNoticeList();
    			//노티스 목록의 메뉴를 입력 받는 것 하나 더 추가 메뉴를 입력받아야함
    			int menu = console.inputNoticeMenu();
    			
    			//스위치문 이용
    			switch(menu) {
    			
    			//상세조회
    			case 1:
    				break;
    				//이전
    			case 2:
    				break;
    				//다음
    			case 3:
    				break;
    				//글쓰기
    			case 4:
    				break;
    			
    			}
    			
    		}
    }

     

    만들어주고 noticeconsole에다가 program5에서 만든것들을 생성 해 준다.

     

    그런 다음 코드를 이렇게 작성 해 주면

    public class NoticeConsole {
    	//출력 구현하기 위한 데이터를 가지고 있어야함
    	//그래서 여기에 noticeservice 만들어줌
    	private NoticeService service;
    	
    	public NoticeConsole() {
    		service = new NoticeService();
    	}
    
    	public void printNoticeList() throws ClassNotFoundException, SQLException {
    		//list를 얻어준다. 서비스가 제공하고 있는 리스트 목록을 얻어서 출력 할 것
    		//예외처리 던져준다.
    		List<Notice> list = service.getList();
    		
    		System.out.println("────────────────────────────────────");
    		//여기서 생성해달라고 해야함
    		System.out.printf("<공지사항> 총%d 게시글\n", 12);
    		System.out.println("────────────────────────────────────");
    		
    		//여기는 반복되어야한니깐 foreach문 사용
    		for(Notice n : list) {
    		System.out.printf("%d. %s / %s / %s\n",
    				n.getId(),
    				n.getTitle(),
    				n.getWriterId(),
    				n.getRegDate());
    		}
    		System.out.println("────────────────────────────────────");
    		System.out.printf("              %d/%d pages\n", 1, 2);
    	}
    
    	public int inputNoticeMenu() {
    		return 0;
    	}
    
    }

    이렇게 출력이 된다.

    for문을 넣어서 실행 해 보니 

    이렇게 출력이 되는 것을 확인 했다 

     

    종료도 시키고 반복을 해주려면 코드를 좀 더 수정 해줘야한다.

    package ex11;
    
    import java.sql.SQLException;
    
    import com.jae.app.console.NoticeConsole;
    
    public class Program5 {
    
    	
    		public static void main (String[] args) throws ClassNotFoundException, SQLException{
    			
    			//notice를 관리 할 콘솔 만들어주기
    			NoticeConsole console = new NoticeConsole();
    			//이 콘솔을 통해서 노티스의 목록을 프린트해달라고 요청하기
    			
    			//번호 오립력시 다시 반복되어야하니깐 while문
    			EXIT : while(true) {
    			console.printNoticeList();
    			//노티스 목록의 메뉴를 입력 받는 것 하나 더 추가 메뉴를 입력받아야함
    			int menu = console.inputNoticeMenu();
    			
    			//스위치문 이용
    			switch(menu) {
    			
    			//상세조회
    			case 1:
    				break;
    				//이전
    			case 2:
    				break;
    				//다음
    			case 3:
    				break;
    				//글쓰기
    			case 4:
    				break;
    				//종료
    			case 5:
    				System.out.println("-끝-");
    				break EXIT;
    			
    			default:
    				System.out.println("사용방법 : 메뉴는 1~4까지만 입력 할 수 있습니다. ");
    				break;
    				
    			}
    			
    			}
    			
    		}
    }

    여기도

    package com.jae.app.console;
    
    import java.sql.SQLException;
    import java.util.List;
    import java.util.Scanner;
    
    import com.jae.app.entity.Notice;
    import com.jae.app.service.NoticeService;
    
    public class NoticeConsole {
    	//출력 구현하기 위한 데이터를 가지고 있어야함
    	//그래서 여기에 noticeservice 만들어줌
    	private NoticeService service;
    	
    	public NoticeConsole() {
    		service = new NoticeService();
    	}
    
    	public void printNoticeList() throws ClassNotFoundException, SQLException {
    		//list를 얻어준다. 서비스가 제공하고 있는 리스트 목록을 얻어서 출력 할 것
    		//예외처리 던져준다.
    		List<Notice> list = service.getList();
    		
    		System.out.println("────────────────────────────────────");
    		//여기서 생성해달라고 해야함
    		System.out.printf("<공지사항> 총%d 게시글\n", 12);
    		System.out.println("────────────────────────────────────");
    		
    		//여기는 반복되어야한니깐 foreach문 사용
    		for(Notice n : list) {
    		System.out.printf("%d. %s / %s / %s\n",
    				n.getId(),
    				n.getTitle(),
    				n.getWriterId(),
    				n.getRegDate());
    		}
    		System.out.println("────────────────────────────────────");
    		System.out.printf("              %d/%d pages\n", 1, 2);
    	}
    
    	public int inputNoticeMenu() {
    		Scanner scan = new Scanner(System.in);
    		
    		System.out.printf("1.상세조회/ 2.이전 / 3.다음/ 4.글쓰기/ 5.종료 > ");
    		String menu_ = scan.nextLine();
    		int menu = Integer.parseInt(menu_);
    		
    		return menu;
    	}
    
    }

    'JDBC' 카테고리의 다른 글

    JDBC 목록 View 생성  (0) 2022.02.04
    JDBC 페이징 쿼리  (0) 2022.02.03
    CRUD 클래스 생성하기  (0) 2022.02.03
    JDBC 데이터 삭제하기  (0) 2022.02.03
    JDBC 데이터 수정하기  (0) 2022.02.03
Designed by Tistory.