공적's life

2-5 문서관리 (수정) 본문

Programing/Java programing

2-5 문서관리 (수정)

melpis 2010. 7. 22. 21:44

이제 마지막으로 남은 것은 수정입니다. 수정은 단순히 생각하면 문서 상세보기와

 

등록에 연속입니다. 그러니 어렵지 않게 구현할 수 있죠.

 

자 말보다 코드로 해볼까요?

 

//사용자가 입력한 문서 번호 가져오기

        String userInputSeq = outputData[1];

          

        //일치할경우 저장할 Map타입

        Map<String, String> documentSave=null;

                

                //검사

        for(int indexI=0; indexI<documentList.size();indexI++){

            Map<String, String>checkDocument = documentList.get(indexI);

            if(userInputSeq.equals(checkDocument.get("SEQ"))){

                documentSave = checkDocument;

                break;

            }

        }

        //null 경우 처리 하지 않음

        if(documentSave!= null){

            

            String tempSeq = documentSave.get("SEQ");

            int seq = Integer.parseInt(tempSeq);

                    

            String title= documentSave.get("TITLE");

            String content= documentSave.get("CONTENT");

                    

            String tempRegistDate = documentSave.get("REGIST_DATE");

            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);

            Date registDate = dateFormat.parse(tempRegistDate);

                    

            String tempHit = documentSave.get("HIT");

            int hit = Integer.parseInt(tempHit);

                    

            System.out.println("글번호 : " + seq);

            System.out.println("제목 : " + title);

            System.out.println("등록일 : " + registDate);

            System.out.println("조회수 : " + hit);

            System.out.println("내용 : " + content);

        }

                

상세보기와 다른 점이 있다면 조회수가 올라가지 않는다는 점입니다. 보통 수정 할 때는

 

글을 작성한 사람이 수정하기 때문에 일단 조회수를 증가 시키지 않는 것으로 정하였습니다.

 

그럼 수정폼은 이걸로 끝이고 실제로 수정해볼까요?

 

//사용자가 입력한 문서 번호 가져오기

    String userInputSeq = outputData[1];

                

    //일치할경우 저장할 Map타입

    Map<String, String> documentSave=null;

                

    //검사

    for(int indexI=0; indexI<documentList.size();indexI++){

        Map<String, String>checkDocument = documentList.get(indexI);

        if(userInputSeq.equals(checkDocument.get("SEQ"))){

            documentSave = checkDocument;

            break;

        }

    }

    //null 경우 처리 하지 않음

    if(documentSave!= null){

          

        String userInputTitle = outputData[2];

        String userInputContent = outputData[3];

                    

        documentSave.put("TITLE", userInputTitle);

        documentSave.put("CONTENT", userInputContent);

                    

        Date systemDate = new Date();

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);

        String sysDate=dateFormat.format(systemDate);

        documentSave.put("REGIST_DATE", sysDate);

                    

                    

        System.out.println("수정완료 하였습니다");

                    

        }

    }        

별로 어렵지 않을 것입니다. 생각보다 쉽죠? 여기서 바뀐 것은 사용자가 다시 입력한 제목과 내용

 

그리고 날짜입니다. 수정한 날짜로 다시 입력해준 것밖에 없네요.

 

이제 다음 번에는 우리가 완성했던 것을 메소드로 옴 겨볼까요?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

public class Board {

	public static void main(String[] args) throws IOException, ParseException {

		// 문서 등록 폼 Register Document Form
		// 문서 등록 Register Document
		// 문서 상세 보기 view Document
		// 문서 목록 보기 view Document List
		// 문서 삭제 Delete Document
		// 문서 수정 폼 Edit Document Form
		// 문서 수정 Edit Document

		// 1. 사용법 출력
		System.out.println("문서 등록 폼: ex) RF");
		System.out.println("문서 등록: ex) RD:제목:내용 ");
		System.out.println("문서 상세 보기: ex) VD:문서번호 ");
		System.out.println("문서 목록 보기: ex) VL ");
		System.out.println("문서 삭제: ex) DD:문서번호 ");
		System.out.println("문서 수정폼: ex) EF:문서번호 ");
		System.out.println("문서 수정: ex) ED:제목:내용 ");

		// 저장되는 공간
		List> documentList = new ArrayList>();
		
		//문서번호
		int systemSeq = 0;
		
		
		while (true) {
			// 2. 사용자 입력
			InputStreamReader inputStreamReader = new InputStreamReader(
					System.in);
			BufferedReader br = new BufferedReader(inputStreamReader);
			String userInputData = br.readLine();

			// 3. 데이터 추출
			// 3.1 데이터 구분하기
			String outputData[] = userInputData.split("\\:");

			// 3.2 사용자의 의도 알아 내기
			String userAction = outputData[0].toUpperCase();

		

			if (userAction.equals("RF")) {

				// 4. 등록 폼출력
				System.out.println("제목: ");
				System.out.println("내용: ");

			} else if (userAction.equals("RD")) {

				// 4.1 제목 추출
				String userInputTitle = outputData[1];
				// 4.2 내용 추출
				String userInputContent = outputData[2];
				// 5. 유효성 검사
				if (userInputTitle.length() < 1
						&& userInputTitle.length() > 600) {
					return;
				}
				if (userInputContent.length() < 1
						&& userInputContent.length() > 2000) {
					return;
				}
				// 6. 문서 번호 가져오기
				systemSeq += 1;
				// 7. 등록일 가져오기
				Date systemDate = new Date();
				SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);
				String sysDate=dateFormat.format(systemDate);
				// 8. 조회수 입력
				int configHit = 0;
				Map documentSave = new HashMap();
				// 9. 등록
				documentSave.put("SEQ",  String.valueOf(systemSeq));
				documentSave.put("TITLE", userInputTitle);
				documentSave.put("CONTENT", userInputContent);
				documentSave.put("REGIST_DATE", sysDate);
				documentSave.put("HIT", String.valueOf(configHit));
				
				documentList.add(documentSave);
		
				// 10. 결과 출력
				System.out.println("등록 완료");

			} else if (userAction.equals("VD")) {
				
				//사용자가 입력한 문서 번호 가져오기
				String userInputSeq = outputData[1];
				
				//일치할경우 저장할 Map타입
				Map documentSave=null;
				
				//검사
				for(int indexI=0; indexIcheckDocument = documentList.get(indexI);
					if(userInputSeq.equals(checkDocument.get("SEQ"))){
						documentSave = checkDocument;
						break;
					}
				}
				if(documentSave!= null){
					int updateHit = Integer.parseInt(documentSave.get("HIT")) + 1;
					documentSave.put("HIT", String.valueOf(updateHit));
					
					String tempSeq = documentSave.get("SEQ");
					int seq = Integer.parseInt(tempSeq);
					
					String title= documentSave.get("TITLE");
					String content= documentSave.get("CONTENT");
					
					String tempRegistDate = documentSave.get("REGIST_DATE");
					SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);
					Date registDate = dateFormat.parse(tempRegistDate);
					
					String tempHit = documentSave.get("HIT");
					int hit = Integer.parseInt(tempHit);
					
					System.out.println("글번호 : " + seq);
					System.out.println("제목  : " + title);
					System.out.println("등록일 : " + registDate);
					System.out.println("조회수 : " + hit);
					System.out.println("내용 : " + content);
				}
			} else if (userAction.equals("VL")) {
				for(int indexI=0; indexI< documentList.size(); indexI++){
					Map documentSave = documentList.get(indexI);
					
					String tempSeq = documentSave.get("SEQ");
					int seq = Integer.parseInt(tempSeq);
					
					String title= documentSave.get("TITLE");
					String content= documentSave.get("CONTENT");
					
					String tempRegistDate = documentSave.get("REGIST_DATE");
					SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);
					Date registDate = dateFormat.parse(tempRegistDate);
					
					String tempHit = documentSave.get("HIT");
					int hit = Integer.parseInt(tempHit);
					
					System.out.println("글번호 : " + seq);
					System.out.println("제목  : " + title);
					System.out.println("등록일 : " + registDate);
					System.out.println("조회수 : " + hit);
					System.out.println("내용 : " + content);
					
				}
				
				
			} else if (userAction.equals("DD")) {
				//사용자가 입력한 문서 번호 가져오기
				String userInputSeq = outputData[1];
				
				
				//검사
				for(int indexI=0; indexIcheckDocument = documentList.get(indexI);
					if(userInputSeq.equals(checkDocument.get("SEQ"))){
						documentList.remove(indexI);
						break;
					}
				}
				
				System.out.println("삭제 되었습니다");
				
			} else if (userAction.equals("EF")) {
				//사용자가 입력한 문서 번호 가져오기
				String userInputSeq = outputData[1];
				
				//일치할경우 저장할 Map타입
				Map documentSave=null;
				
				//검사
				for(int indexI=0; indexIcheckDocument = documentList.get(indexI);
					if(userInputSeq.equals(checkDocument.get("SEQ"))){
						documentSave = checkDocument;
						break;
					}
				}
				//null 경우 처리 하지 않음
				if(documentSave!= null){
					
					String tempSeq = documentSave.get("SEQ");
					int seq = Integer.parseInt(tempSeq);
					
					String title= documentSave.get("TITLE");
					String content= documentSave.get("CONTENT");
					
					String tempRegistDate = documentSave.get("REGIST_DATE");
					SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);
					Date registDate = dateFormat.parse(tempRegistDate);
					
					String tempHit = documentSave.get("HIT");
					int hit = Integer.parseInt(tempHit);
					
					System.out.println("글번호 : " + seq);
					System.out.println("제목  : " + title);
					System.out.println("등록일 : " + registDate);
					System.out.println("조회수 : " + hit);
					System.out.println("내용 : " + content);
				}
				
			} else if (userAction.equals("ED")) {
				//사용자가 입력한 문서 번호 가져오기
				String userInputSeq = outputData[1];
				
				//일치할경우 저장할 Map타입
				Map documentSave=null;
				
				//검사
				for(int indexI=0; indexIcheckDocument = documentList.get(indexI);
					if(userInputSeq.equals(checkDocument.get("SEQ"))){
						documentSave = checkDocument;
						break;
					}
				}
				//null 경우 처리 하지 않음
				if(documentSave!= null){
					
					String userInputTitle = outputData[2];
					String userInputContent = outputData[3];
					
					documentSave.put("TITLE", userInputTitle);
					documentSave.put("CONTENT", userInputContent);
					
					Date systemDate = new Date();
					SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA);
					String sysDate=dateFormat.format(systemDate);
					documentSave.put("REGIST_DATE", sysDate);
					
					
					System.out.println("수정완료 하였습니다");
					
				}
				
				
				
			} else {
				System.out.println("잘못 입력하셨습니다");
			}

		}

	}
}

'Programing > Java programing' 카테고리의 다른 글

3-1 메소드로 분리  (0) 2010.07.24
2-6 다음 진행을 위한 회고  (0) 2010.07.23
2-4 문서관리 (삭제)  (0) 2010.07.22
2-3 문서 관리 (목록 보기)  (0) 2010.07.22
2-2 문서 관리 (상세보기)  (0) 2010.07.20