공적's life

2-4 문서관리 (삭제) 본문

Programing/Java programing

2-4 문서관리 (삭제)

melpis 2010. 7. 22. 16:45

이제 우리에게 남은 것은 수정과 삭제입니다. 수정은

 

등록과 상세보기에 합작이기 때문에 제일 나중에 해도 무방할 듯 하여 삭제부터 진행하겠습니다.

 

지금 현재는 삭제할 때 List에서 한 개씩 문서를 꺼내고 사용자가 입력한 문서번호와 문서를 보관하고

 

있는 List가 일치하면 그것을 삭제하는 것입니다. 지금은 조금 세련되지 않았지만 약간에 수정을 거치면

 

세련되게 삭제가 될 것입니다.

 

그럼 코드로 직접 볼까요?

 

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

    String userInputSeq = outputData[1]        

                

    //검사

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

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

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

            documentList.remove(indexI);

            break;

        }

    }

          

    System.out.println("삭제 되었습니다");

 

생각보다 코드는 간단하네요..그럼 한번 실제로 테스트를 해볼까요?

 

 

 

문서 등록 폼: ex) RF

문서 등록: ex) RD:제목:내용

문서 상세 보기: ex) VD:문서번호

문서 목록 보기: ex) VL

문서 삭제: ex) DD:문서번호

문서 수정폼: ex) EF:문서번호

문서 수정: ex) ED:제목:내용

RD:하이:안녕하세요

등록 완료

RD:하이1:안녕하세요1

등록 완료

RD:하이2:안녕하세요2

등록 완료

RD:하이3:안녕하세요3

등록 완료

RD:하이4:안녕하세요4

등록 완료

VL

글번호 : 1

제목 : 하이

등록일 : Thu Jul 22 16:41:30 KST 2010

조회수 : 0

내용 : 안녕하세요

글번호 : 2

제목 : 하이1

등록일 : Thu Jul 22 16:41:34 KST 2010

조회수 : 0

내용 : 안녕하세요1

글번호 : 3

제목 : 하이2

등록일 : Thu Jul 22 16:41:38 KST 2010

조회수 : 0

내용 : 안녕하세요2

글번호 : 4

제목 : 하이3

등록일 : Thu Jul 22 16:41:44 KST 2010

조회수 : 0

내용 : 안녕하세요3

글번호 : 5

제목 : 하이4

등록일 : Thu Jul 22 16:41:47 KST 2010

조회수 : 0

내용 : 안녕하세요4

DD:2

삭제 되었습니다

VL

글번호 : 1

제목 : 하이

등록일 : Thu Jul 22 16:41:30 KST 2010

조회수 : 0

내용 : 안녕하세요

글번호 : 3

제목 : 하이2

등록일 : Thu Jul 22 16:41:38 KST 2010

조회수 : 0

내용 : 안녕하세요2

글번호 : 4

제목 : 하이3

등록일 : Thu Jul 22 16:41:44 KST 2010

조회수 : 0

내용 : 안녕하세요3

글번호 : 5

제목 : 하이4

등록일 : Thu Jul 22 16:41:47 KST 2010

조회수 : 0

내용 : 안녕하세요4

DD:3

삭제 되었습니다

VL

글번호 : 1

제목 : 하이

등록일 : Thu Jul 22 16:41:30 KST 2010

조회수 : 0

내용 : 안녕하세요

글번호 : 4

제목 : 하이3

등록일 : Thu Jul 22 16:41:44 KST 2010

조회수 : 0

내용 : 안녕하세요3

글번호 : 5

제목 : 하이4

등록일 : Thu Jul 22 16:41:47 KST 2010

조회수 : 0

내용 : 안녕하세요4

 

상당히 길긴 하지만 그다지 내용은 없네요. 테스트할때 중간 것부터 삭제해 보았습니다.

 

혹시라도 오류가 있을 까봐. 잘되네요. 생각보다 간단하죠?

 

다음은 수정을 해보도록하겠습니다.

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")) {
			} else if (userAction.equals("ED")) {
			} else {
				System.out.println("잘못 입력하셨습니다");
			}

		}

	}
}

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

2-6 다음 진행을 위한 회고  (0) 2010.07.23
2-5 문서관리 (수정)  (0) 2010.07.22
2-3 문서 관리 (목록 보기)  (0) 2010.07.22
2-2 문서 관리 (상세보기)  (0) 2010.07.20
2-1 문서 관리 (등록)  (0) 2010.07.13