열심히 끝까지

[코딩 과제] - 9/14 강사님 문제 본문

디바이스 융합 자바(Java)기반 풀스택 개발자 양성과정(과제)

[코딩 과제] - 9/14 강사님 문제

노유림 2022. 9. 14. 18:27

Member 테이블 이용해서

회원가입
로그인 성공/실패

 

------------------com.ryo.biz.member : MemberVO, MemberService

package com.ryo.biz.member;

public class MemberVO {
	private String mid;
	private String mpw;
	private String name;
	private String role;
	public String getMid() {
		return mid;
	}
	public void setMid(String mid) {
		this.mid = mid;
	}
	public String getMpw() {
		return mpw;
	}
	public void setMpw(String mpw) {
		this.mpw = mpw;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getRole() {
		return role;
	}
	public void setRole(String role) {
		this.role = role;
	}
	@Override
	public String toString() {
		return "MemberVO [mid=" + mid + ", mpw=" + mpw + ", name=" + name + ", role=" + role + "]";
	}
	
	
}
package com.ryo.biz.member;

// 상속을 위한 인터페이스
public interface MemberService {
	void insertMember(MemberVO vo);
	MemberVO selectOneMember(MemberVO vo);
}

 

------------------com.ryo.biz.member.impl : MemberDAO, MemberServiceImpl

package com.ryo.biz.member.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.stereotype.Repository;

import com.ryo.biz.common.JDBCUtil;
import com.ryo.biz.member.MemberVO;

@Repository("memberDAO")
public class MemberDAO {
	private Connection conn;
	private PreparedStatement pstmt;

	final String sql_selectOne="SELECT * FROM MEMBER WHERE MID=? AND MPW=?";
	final String sql_insert="INSERT INTO MEMBER(MID,MPW,NAME,ROLE) VALUES(?,?,?,?)";
	final String sql_update="UPDATE BOARD SET NAME=?, MPW=? WHERE MID=?";
	final String sql_delete="DELETE BOARD WHERE MID=?";
	
    // 로그인
	MemberVO selectOneMember(MemberVO vo) {
		System.out.println("로그 : selectOne: " + vo);
		conn=JDBCUtil.connect();
		try {
			pstmt=conn.prepareStatement(sql_selectOne);
			pstmt.setString(1, vo.getMid());
			pstmt.setString(2, vo.getMpw());
			ResultSet rs=pstmt.executeQuery();
			if(rs.next()) {
				MemberVO data=new MemberVO();
				data.setMid(rs.getString("MID"));
				data.setMpw(rs.getString("MPW"));
				data.setName(rs.getString("NAME"));
				data.setRole(rs.getString("ROLE"));
                                System.out.println("로그 : 로그인 완료 " + vo);
				return data;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.disconnect(pstmt, conn);
		}		
		return null;
	}
    // 회원가입
	void insertMember(MemberVO vo) {
		System.out.println("로그 >> insertBoard");
		conn=JDBCUtil.connect();
		try {
			pstmt=conn.prepareStatement(sql_insert);
			pstmt.setString(1, vo.getMid());
			pstmt.setString(2, vo.getMpw());
			pstmt.setString(3, vo.getName());
			pstmt.setString(4, vo.getRole());
			pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtil.disconnect(pstmt, conn);
		}
	}
    // 나중을 위한 멤버 업데이트
	void updateMember(MemberVO vo) {
		System.out.println("로그 >> updateBoard");
		conn=JDBCUtil.connect();
		try {
			pstmt=conn.prepareStatement(sql_update);
			pstmt.setString(1, vo.getName());
			pstmt.setString(2, vo.getMpw());
			pstmt.setString(3,vo.getMid());
			pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtil.disconnect(pstmt, conn);
		}
	}
    // 나중을 위한 멤버 삭제
	void deleteMember(MemberVO vo) {
		System.out.println("로그 >> deleteBoard");
		conn=JDBCUtil.connect();
		try {
			pstmt=conn.prepareStatement(sql_delete);
			pstmt.setString(1,vo.getMid());
			pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtil.disconnect(pstmt, conn);
		}
	}	
}
package com.ryo.biz.member.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ryo.biz.member.MemberService;
import com.ryo.biz.member.MemberVO;

// 상속받아와 override + Service로 DAO를 멤버변수로 가지는 서비스 언급
@Service("memberService")
public class MemberServiceImpl implements MemberService {

	@Autowired // 해당 멤버변수 타입 체크
	private MemberDAO memberDAO;
	
	@Override
	public void insertMember(MemberVO vo) {
		memberDAO.insertMember(vo);
	}

	@Override
	public MemberVO selectOneMember(MemberVO vo) {
		// TODO Auto-generated method stub
		return memberDAO.selectOneMember(vo);
	}
	
}

 

------------------test : Client

package test;

import java.util.List;
import java.util.Scanner;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

import com.ryo.biz.member.MemberService;
import com.ryo.biz.member.MemberVO;

public class Client {	
	public static void main(String[] args) {
		AbstractApplicationContext factory=new GenericXmlApplicationContext("applicationContext.xml");
		
		MemberService ms = (MemberService)factory.getBean("memberService");
		Scanner sc = new Scanner(System.in);
        
		MemberVO mvo = new MemberVO();
		while(true) {
			System.out.println("1. 회원가입");
			System.out.println("2. 로그인");
			System.out.println("----------------------");
			System.out.print("번호 입력 : ");
			int num = sc.nextInt();
			
			if(num==1) {
				System.out.println("----회원가입----");
				System.out.println("--------------"); 
				System.out.print("아이디 : ");
				String mid=sc.next();
				mvo.setMid(mid);
				System.out.println("로그 아이디 : " + mvo.getMid());
				System.out.print("비밀번호 : ");
				String mpw=sc.next();
				mvo.setMpw(mpw);
				System.out.print("이름 : ");
				String name=sc.next();
				mvo.setName(name);
				System.out.print("role : ");
				String role=sc.next();
				mvo.setRole(role);
				
				ms.insertMember(mvo);
				
				continue;
			}else {
				System.out.print("아이디 : ");
				String mid=sc.next();
				mvo.setMid(mid);
				System.out.print("비밀번호 : ");
				String mpw=sc.next();
				mvo.setMpw(mpw);
				
				if(ms.selectOneMember(mvo)==null) {
					System.out.println("로그인 실패");
					break;
				}
				else {
					System.out.println("로그인 성공");
					break;
				}
			}
		}
		
		sc.close();
		factory.close();
	}
}

 

결과창 - 회원가입
결과창 - 로그인 성공
결과창 - 로그인 실패