create table member( userid varchar2(50) not null primary key, passwd varchar2(50) not null, name varchar2(50) not null, email varchar2(50), join_date date default sysdate);
insert into member(userid, passwd, name, email) values ('kim','1234','김철수','kim@gmail.com');
public interface MemberDAO{ public List<MemberDTO> memberList(); public void insertMember(MemberDTO vo); public MemberDTO viewMember(String userid); public void deleteMember(String userid); public void updateMember(MemberDTO vo);
//비밀번호 체크 public boolean checkPw(String userid, String passwd); }
@Repository //서버가 startup될 때 이 클래스가 메모리에 자동으로 등록됨 public class MemberDAOImpl implements MemberDAO{ //로깅 처리를 위한 객체 선언 private static final Logger loggger = LoggerFactory.getLogger(MemberDAOImpl.class);
//SqlSession 객체를 개발자가 직접 생겅하지 않고 스프링에서 연결시켜 줌 @Inject //의존관계 주입 SqlSession sqlSession;
@Override public void deleteMember(String userid) { sqlSession.delete("member.deleteMember", userid); }
@Override public void updateMember(MemberDTO vo) { sqlSession.update("member.updateMember", vo); }
@Override public boolean checkPw(String userid, String passwd) { boolean result = false; // mapper에 넘길 값이 2개 이상인 경우 map으로 묶오서 전달 Map<String, String> map = new HashMap<>(); map.put("userid", userid); map.put("passwd", passwd); int count = sqlSession.selectOne("member.checkPw", map); // 리턴값이 1이면 true, 0이면 false if(count==1) result = true; return result; }
public interface MemberService{ public List<MemberDTO> memberList(); public void insertMember(MembmerDTO dto); public MemberDTO viewMember(String userid); public void deleteMember(String userid); public void updateMember(MemberDTO dto);
// 비밀번호 체그 public boolean checkPw(String userid, String passwd); }
@Controller // 현재 클래스를 Controller Bean으로 등록함 public class MemberController{ private static final Logger logger = LoggerFactory.getLogger(MemberController.class);
@RequestMapping("member/list.do") // 사용자가 요청하는 주소 public String memberList(Model model) { List<MemberDTO> list = memberService.memberList(); logger.info("회원 목록:" + list); model.addAttribute("list", list); // 모델에 저장 return "member/member_list"; // 출력 페이지로 포워딩 }
@RequestMapping("member/write.do") public String write() { return "member/write"; }
// 폼에 입력한 데이터가 MemberDTO dto 변수에 저장됨 // request.getParameter 생략 @RequestMapping("member/insert.do") public String insert(@ModelAttribute MemberDTO dto) { // public String insert(MemberDTO dto, HttpServletRequest request) { // String name = request.getParameter("name"); memberService.insertMember(dto); return "redirect:/member/list.do"; // 목록 갱신 }