회원 관리 프로젝트
현재 사용하는 DB 가 없으므로 DAO 를 생성하여 ArrayList 객체를 생성하여 DataBase 를 구현
회원관리 기능은 구현 완료, 로그인 기능은 미구현
DAO - 데이터베이스에서 가져온 데이터를 객체로 변환하여 비즈니스 로직에서 사용할 수 있도록 함
DTO - Service와 DB를 연결하는 역할
package collection.main;
import java.util.Scanner;
import collection.service.MemberService;
import collection.service.MemberServiceImpl;
public class MainClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num;
MemberService ms = new MemberServiceImpl();
while(true) {
System.out.println("1. 회원관리");
System.out.println("2. 로그인기능");
System.out.print(">>> : ");
num = sc.nextInt();
switch(num) {
case 1 :
ms.display();
break;
case 2 :
// 미구현
break;
}
}
}
}
MainClass 클래스
package collection.service;
public interface MemberService {
// 중간자 역할
public void register();
public void memberViews();
public void display();
public void search();
}
MemberService 인터페이스 ( 구현해야 하는 메소드를 정의 )
package collection.dto;
public class MemberDTO {
private String name, addr;
// getter/setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
MemberDTO 클래스 ( 데이터베이스에서 가져온 데이터를 객체로 변환하여 비즈니스 로직에서 사용할 수 있도록 함 )
package collection.dao;
import java.util.ArrayList;
import collection.dto.MemberDTO;
public class MemberDAO {
// DAO = Data Access Object
// DAO 는 특정 저장소에 연결하는 역할을 함
// 현재 DB 가 존재하지 않기 때문에 데이터를 유지하기 위해
// static 으로 생성
public static ArrayList<MemberDTO> arr;
// arr 초기화 - 다음과 같이 static 으로 초기화 하는 이유는 초기화 하면서 코드를
// 추가할 수 있기 때문
static {
arr = new ArrayList<>();
}
// 데이터를 ArrayList 에 저장하는 역할
public void register(MemberDTO dto) {
System.out.println("dao register 연동");
// System.out.println( dto.getName() );
// System.out.println( dto.getAddr() );
arr.add(dto);
}
// 데이터를 반환하는 역할
public ArrayList<MemberDTO> getData() {
return arr;
}
public MemberDTO search(String name) {
for(MemberDTO a : arr) {
if(a.getName().equals(name)) {
return a;
}
}
return null;
}
public MemberDAO() {
}
}
MemberDAO 클래스 ( Service와 DB를 연결하는 역할 )
package collection.service;
import java.util.ArrayList;
import java.util.Scanner;
import collection.dao.MemberDAO;
import collection.dto.MemberDTO;
public class MemberServiceImpl implements MemberService {
// MemberService 를 상속 받아서 실제 기능을 구현
MemberDAO dao;
public MemberServiceImpl() {
dao = new MemberDAO();
}
@Override
public void register() {
System.out.println("회원 가입 기능입니다!!!!");
String name, addr;
MemberDTO dto = new MemberDTO();
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력 : ");
name = sc.next();
System.out.print("주소 입력 : ");
dto.setAddr(sc.next());
dto.setName(name);
dao.register(dto);
}
@Override
public void memberViews() {
System.out.println("멤버 보기 기능입니다!!!!");
ArrayList<MemberDTO> arr = dao.getData();
for(MemberDTO a : arr) {
System.out.println("이름 : " + a.getName());
System.out.println("주소 : " + a.getAddr());
System.out.println("-----------------");
}
}
public void display() {
Scanner sc = new Scanner(System.in);
int num;
while(true) {
System.out.println("1. 저장");
System.out.println("2. 목록확인");
System.out.println("3. 종료");
System.out.println("4. 검색");
System.out.print(">>> : ");
num = sc.nextInt();
switch(num) {
case 1 :
register();
break;
case 2 :
memberViews();
break;
case 3 : return;
case 4 :
search();
break;
}
}
}
public void search() {
Scanner sc = new Scanner(System.in);
String name;
System.out.print("검색할 이름 입력 : ");
name = sc.next();
MemberDTO m = dao.search( name );
if( m == null ) {
System.out.println(name + " 사용자는 존재하지 않습니다.");
}else {
System.out.println("사용자 이름 : " + m.getName());
System.out.println("사용자 주소 : " + m.getAddr());
}
}
}
MemberServiceImpl 클래스 ( 실제 기능 구현부 )
728x90
'국비지원_핀테크' 카테고리의 다른 글
15일차_ [java] 파일 입, 출력 ( File I/O ) (0) | 2024.02.23 |
---|---|
15일차_ [java] 롬복 ( lombok ) (0) | 2024.02.23 |
14일차_ [java] 컬렉션 ( collection ), 객체 리스트 (0) | 2024.02.22 |
14일차_ [java] 쓰레드 ( Thread ) (0) | 2024.02.22 |
14일차_ [java] 람다 ( Lambda ) (0) | 2024.02.22 |