스프링 기초_프로젝트_01

bitna's study note·2022년 8월 9일

스프링

목록 보기
40/54

8월 9일

관리자쪽 회원관리 부분 CRUD 완성 ㅠㅠ
눙물이....ㅠㅠ
응용하기 까지가 힘들다능...게시판 4~5번은 계속 새로 만들어 보니까
이제야 VO->Mapper->Mapper.xml->MapperTest확인->service->serviceImpl->serviceTest확인->Controller->jsp페이지 붙여서 구현해보기

이런 순서가 이해가됨

(1)MemberVO 작성하기

package com.keduit.domain;

import java.util.Date;

import lombok.Data;

@Data
public class MemberVO {
    
	private Long bno;
	private String username;
	private String password;
	private String userid;
	private String userphone;
	private Date regdate;
	private Date updatedate;
	private String auth;
}

(2)MemberMapper 인터페이스 작성하기

package com.keduit.mapper;

import java.util.List;

import com.keduit.domain.MemberVO;

public interface MemberMapper {
	
	void insert(MemberVO vo);
	
	List<MemberVO> getList();
	
	MemberVO read(String userid);
	
	int delete (String userid);
	
	int update (MemberVO vo);

}

(3)MemberMapper.xml 작성하기

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
   <mapper namespace="com.keduit.mapper.MemberMapper">
  
  <insert id="insert">
   INSERT INTO Member_TB(bno,username, password, userid, userphone) 
   VALUES(seq_Member.nextval,#{username},#{password},#{userid},#{userphone})
  </insert>
  
  <select id="getList" resultType="com.keduit.domain.MemberVO">
  	select * from Member_TB order by bno desc
  </select>
  
  <select id="read" resultType="com.keduit.domain.MemberVO">
  	select * from Member_TB where userid= #{userid}
  </select>
  
  <delete id="delete">
  	delete from Member_TB where userid= #{userid}
  </delete>
  
  <update id="update">
   update Member_TB
   set username=#{username}, password=#{password}, userphone=#{userphone}, updatedate= sysdate
   where userid=#{userid} 
  </update>
  
  </mapper>
  

(4)MemberMapperTest 작성하기

package com.keduit.mapper;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.keduit.domain.MemberVO;
import com.keduit.domain.MemberVO;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class MemberMapperTest {

	@Autowired
	private MemberMapper member;
	
	@Test
	public void testInsert () {
		log.info("Member testInsert............입니다용");
		MemberVO vo =new MemberVO();
		vo.setUsername("이름");
		vo.setPassword("1234");
		vo.setUserid("c");
		vo.setUserphone("010-2323-2323");
		member.insert(vo);	
	}
	
	@Test
	public void testGetList() {
		log.info("testGetList.........입니다용");
		member.getList();
	}
	
	@Test
	public void testRead() {
		log.info("testRead.........입니다용");
		member.read("c");
	}
	
	@Test
	public void testDelete() {
		log.info("testDelete.........입니다용");
		int count=member.delete("a");
		log.info("삭제건수:"+count);
	}
	
	@Test
	public void testUpdate() {
		log.info("testUpdate.........입니다용");
		MemberVO vo =new MemberVO();
		vo.setUsername("수정");
		vo.setPassword("1111");
		vo.setUserid("dkflj");
		vo.setUserphone("010-1111-1111");
		int count=member.update(vo);
		log.info("수정건수:"+count);
	}
}

(5)MemberService 인터페이스 작성하기

package com.keduit.service;

import java.util.List;

import com.keduit.domain.MemberVO;

public interface MemberService {

	void memberRegister(MemberVO vo);
	
	List<MemberVO> getList();
	
	MemberVO memberRead(String userid);
	
	int memberRemove(String userid);
	
	int memberModify(MemberVO vo);
}

(6)MemberServiceImpl 작성하기

package com.keduit.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.keduit.domain.MemberVO;
import com.keduit.mapper.BoardMapper;
import com.keduit.mapper.MemberMapper;

import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j;

@Service 
@Log4j
@RequiredArgsConstructor 
public class MemberServiceImpl implements MemberService{
	
	private final MemberMapper mapper;

	@Override
	public void memberRegister(MemberVO vo) {
		log.info("memberRegister...........부분입니다.");
		mapper.insert(vo);
	}

	@Override
	public List<MemberVO> getList() {
		log.info("memberGetList...........부분입니다.");
		return mapper.getList();
	}

	@Override
	public MemberVO memberRead(String userid) {
		log.info("memberRead...........부분입니다.");
		return mapper.read(userid);
	}
	
	@Override
	public int memberRemove(String userid) {
		log.info("memberRemove...........부분입니다.");
		int count=mapper.delete(userid);
		return count;
	}

	@Override
	public int memberModify(MemberVO vo) {
		log.info("memberModify...........부분입니다.");
		int count=mapper.update(vo);
		return count;
	}

}

(7)MemberServiceTest 작성하기

package com.keduit.service;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.keduit.domain.MemberVO;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class MemberServiceTest {

	@Autowired
	private MemberService service;
	
	@Test
	public void testMemberRegister() {
		
		log.info("Member Register............입니다용");
		MemberVO vo= new MemberVO();
		vo.setUsername("음캬캬캬");
		vo.setPassword("1234");
		vo.setUserid("아이디인지도모르지");
		vo.setUserphone("010-0000-0101");
		service.memberRegister(vo);
	}
	
	@Test
	public void testGetList() {
		log.info("GetList............입니다용");
		service.getList().forEach(b ->log.info(b));
	}
	
	@Test
	public void testMemberRead() {
		log.info("Member Read............입니다용");
		service.memberRead("c");
	}
	
	@Test
	public void testMemberRemove() {
		log.info("Member Remove............입니다용");
		int count=service.memberRemove("b");
		log.info("삭제 건수:"+count);
	}
	
}

(8)MemberController 작성하기

package com.keduit.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.keduit.domain.MemberVO;
import com.keduit.service.MemberService;

import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j;

@Controller
@RequiredArgsConstructor 
@RequestMapping("/member/*")
@Log4j
public class MemberController {
	
	private final MemberService service;
	
	@GetMapping("/signup")
	public void signup() {
		log.info("Get방식 signup...........");
	}
	
	@PostMapping("/signup")
	public String memberRegister(MemberVO vo,RedirectAttributes rttr) {
		log.info("Post방식 signup...........");
		service.memberRegister(vo);
		rttr.addFlashAttribute("result",' ');
		return "redirect:/board/list";
	}
	
	@GetMapping("/memberList")
	public void memberList(Model model) {
		log.info("Get방식 memberList.............");
		model.addAttribute("list",service.getList());
	} 
	
	@GetMapping("/memberModify")
	public void memberModify(String userid,Model model) {
		log.info("Get방식 memberModify.............");
		model.addAttribute("member",service.memberRead(userid));
		
	}
	
	@PostMapping("/memberModify")
	public String memberModifyPost(MemberVO vo,RedirectAttributes rttr) {
		log.info("Post방식 memberModify.............");
		int count=service.memberModify(vo);
		log.info("수정건수:"+count);
		rttr.addFlashAttribute("result",' ');
		return "redirect:/member/memberList";
	}
	
	@PostMapping("/memberRemove")
	public String memberRemove(String userid, RedirectAttributes rttr) {
		log.info("Post방식 memberRemove.............");
		int count=service.memberRemove(userid);
		log.info("삭제건수:"+count);
		
		return "redirect:/member/memberList";
	}

}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글