21.04.01

민주·2021년 4월 2일
0

[Spring과 myBatis 이용 MemberService]

@Controller
public class HomeController {

	private Logger logger = LoggerFactory.getLogger(this.getClass());
	@Autowired
	MemberService service;

	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Model model) {
		return "index";
	}

	@RequestMapping(value = "/joinForm", method = RequestMethod.GET)
	public String joinForm(Model model) {
		return "joinForm";
	}

	@RequestMapping(value = "/join", method = RequestMethod.POST)
	public String join(Model model, @RequestParam HashMap<String, String> params) {
		logger.info("{}", params);
		int success = service.join(params);
		logger.info("성공여부 : " + success);
		String msg = "회원가입에 실패했습니다.";
		if (success > 0) {
			msg = "회원가입에 성공했습니다.";
		}
		model.addAttribute("msg", msg);
		return "index";
	}

	@RequestMapping(value = "/login", method = RequestMethod.POST)
	public String login(Model model, @RequestParam HashMap<String, String> params, HttpSession session) {
		logger.info("{}", params);
		String id = service.login(params);
		logger.info("로그인아이디 : " + id);
		String page = "index";
		if (id != null) {
			session.setAttribute("loginId", id);// 세션처리
			page = "redirect:/list";
		}
		return page;
	}

	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String list(Model model, HttpSession session) {
		logger.info("리스트 요청");
		String loginId = (String) session.getAttribute("loginId");
		if (loginId != null) {
			ArrayList<MemberDTO> list = service.list();
			logger.info("list size : " + list.size());
			model.addAttribute("list", list);
			return "list";
		} else {
			return "index";
		}
	}

	@RequestMapping(value = "/updateForm", method = RequestMethod.GET)
	public String updateForm(Model model, @RequestParam String id) {
		logger.info("수정 폼 요청");
		MemberDTO dto = service.updateForm(id);
		logger.info("dto : " + dto);
		model.addAttribute("dto", dto);
		return "updateForm";
	}

	@RequestMapping(value = "/update", method = RequestMethod.POST)
	public String update(Model model, @RequestParam HashMap<String, Object> params) {
		logger.info("수정 요청");
		logger.info("{}", params);
		int success = service.update(params);
		String page = "redirect:/list";
		logger.info("수정 성공여부 : " + success);
		return page;
	}

	@RequestMapping(value = "/delete", method = RequestMethod.GET)
	public String update(Model model, @RequestParam String id) {
		logger.info("삭제 요청");
		int success = service.delete(id);
		logger.info("성공여부 : " + success);
		return "redirect:/list";
	}
}
@Service
public class MemberService {
	
	private Logger logger = LoggerFactory.getLogger(this.getClass());
	@Autowired MemberDAO dao;
	public int join(HashMap<String, String> params) {
		logger.info("회원가입 서비스 접근");
		return dao.join(params);
	}
	
	public String login(HashMap<String, String> params) {
		logger.info("로그인 서비스 접근");
		return dao.login(params);
	}
	
	public ArrayList<MemberDTO> list() {
		logger.info("리스트 서비스 접근");
		return dao.list();
	}

	public MemberDTO updateForm(String id) {
		logger.info("업데이트폼 서비스 접근");
		return dao.updateForm(id);
	}

	public int update(HashMap<String, Object> params) {
		logger.info("업데이트 서비스 접근");
		return dao.update(params);
	}

	public int delete(String id) {
		logger.info("삭제 서비스 접근");
		return dao.delete(id);
	}

}
[MemberDAO]
public interface MemberDAO {

	int join(HashMap<String, String> params);

	String login(HashMap<String, String> params);

	ArrayList<MemberDTO> list();

	MemberDTO updateForm(String id);

	int update(HashMap<String, Object> params);

	int delete(String id);

}
[mapper.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.spring.main.dao.MemberDAO">
	<select id="login" resultType="String" parameterType="hashMap">
		SELECT id FROM member WHERE id=#{id} AND pw=#{pw}
	</select>
	
	<select id="list" resultType="com.spring.main.dto.MemberDTO">
		SELECT * FROM member ORDER BY reg_date DESC
	</select>
	
	<insert id="join" parameterType="hashMap">
		INSERT INTO member (id,pw,name,phone,email) VALUES(#{id},#{pw},#{name},#{phone},#{email})
	</insert>
	
	<delete id="delete">
		DELETE FROM member WHERE id=#{param1}
	</delete>
	
	<select id="updateForm" resultType="com.spring.main.dto.MemberDTO">
		SELECT * FROM member WHERE id=#{param1}
	</select>
	
	<update id="update" parameterType="hashMap">
		UPDATE MEMBER set id=#{id},pw=#{pw},name=#{name},phone=#{phone},email=#{email} WHERE id=#{id}
	</update>
</mapper>
[web.xml]
<!-- 필터생성(특정한내용에 대해서 특수한 처리를 해 주는것 -->
	<!-- encodingFliter를 등록(UTF-8인코딩,강제적용옵션(forceEncoding)) -->
	<filter>
		<filter-name>encodingFliter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	
	<!-- 필터 사용 설정(어떤 필터를? 언제?(/* : 모든페이지를 의미)) -->
	<filter-mapping>
		<filter-name>encodingFliter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
- 한글깨짐방지를 위해 web.xml에 필터를 추가해준다.
- 기존 request.setCharacterEncodig(“UTF-8”)의 기능이다.
profile
개발이좋아요

0개의 댓글

관련 채용 정보