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";
}
}