WEB recipe

singleton pattern과 list를 활용한 crud

컵라면만두세트 2022. 5. 18. 11:49
  • singleton patternlist를 활용한 crud

구조


  • Mainclass.java
package main;

import java.util.Scanner;

import cls.DeleteClass;
import cls.InsertClass;
import cls.SelectClass;
import cls.UpdateClass;

public class MainClass {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		// initialize
		
		// loop
		
		// release
		
		//menu 추가(insert), 삭제(delete), 검색(select), 수정(update)
		
		while(true) {
			System.out.println(">>>>>>>>>> menu");
			System.out.println("1. 학생추가");
			System.out.println("2. 학생삭제");
			System.out.println("3. 학생검색");
			System.out.println("4. 학생수정");
			System.out.println("5. 종료");

			System.out.println("작업번호 >>>");
			int number = s.nextInt();
			
			switch(number) {
			case 1 :
				InsertClass ic = new InsertClass();
				//메소드 호출
				ic.process();
				break;
			case 2 : 
				DeleteClass dc = new DeleteClass();
				dc.process();
				break;
			case 3 : 
				SelectClass sc = new SelectClass();
				sc.process();
				break;
			case 4 : 
				UpdateClass uc = new UpdateClass();
				uc.process();
				break;
			case 5 : 
				System.exit(0);
				break;
			}

		}
	}

}
  • StudentDto
private int number; // 학생번호 
	private String name; // 이름
	private int english; // 점수
	private int math;

getter, setter , toString
  • studentdao
public class StudentDao {
	
	// singleton 패턴 
	// arraylist를 같이 사용
	private static StudentDao dao = null;
	public List<StudentDto> list = null;
	private StudentDao() {
		list = new ArrayList<StudentDto>();
	}
	
	public static StudentDao getInstance() {
		if(dao == null) {
			dao = new StudentDao();
		}
		return dao;
	}

}
  • updateclass

학생 수정 , 이름으로 검색해서 , 영어와 수학점수 수정, set활용

public class UpdateClass {
	
	public UpdateClass() {
		
	}
	
	public void process() {
		Scanner s = new Scanner(System.in);
		
		System.out.print("이름 = ");
		String name = s.next();
		System.out.print("영어수정 = ");
		int tmp = s.nextInt();
		System.out.print("수학수정 = ");
		int tmp2 = s.nextInt();
		
		StudentDao dao = StudentDao.getInstance();
		
		for(int i=0; i<dao.list.size(); i++) {
			if(dao.list.get(i).getName().equals(name)) {
				dao.list.get(i).setEnglish(tmp);
				dao.list.get(i).setMath(tmp2);

			}
		}
	}

}
  • selectclass

학생 검색, 이름 검색

public class SelectClass {
	
	public SelectClass() {
		
	}
	
	public void process() {
		Scanner s = new Scanner(System.in);
		
		System.out.print("이름 = ");
		String name = s.next();

		StudentDao dao = StudentDao.getInstance();
		
		for(int i=0; i<dao.list.size(); i++) {
			if(dao.list.get(i).getName().equals(name)) {
					
				System.out.print("번호 :" + dao.list.get(i).getNumber() + " ");
				System.out.print("이름 :" + dao.list.get(i).getName() + " ");
				System.out.print("영어 :" + dao.list.get(i).getEnglish() + " ");
				System.out.print("수학 :" + dao.list.get(i).getMath() + " ");
				System.out.println();

			}
			
		}
	}

}

나머지 crud도 위 로직과 비슷하게 진행.