BoardController
package kr.co.gudi.controller;
import java.util.ArrayList;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import kr.co.gudi.dto.BoardDTO;
import kr.co.gudi.service.BoardService;
@Controller
public class BoardController {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired BoardService service;
@RequestMapping(value="/list")
public String list(Model model, HttpSession session) {
String page = "index";
if(session.getAttribute("loginId") == null) {
model.addAttribute("msg", "로그인이 필요한 서비스 입니다");
}else {
ArrayList<BoardDTO> list = service.list();
logger.info("list size : "+list.size());
model.addAttribute("list", list);
page = "list";
}
return page;
}
@RequestMapping(value="/writeForm")
public String writeForm(Model model, HttpSession session) {
String page = "index";
if(session.getAttribute("loginId") == null) {
model.addAttribute("msg", "로그인이 필요한 서비스 입니다.");
}else {
page = "writeForm";
}
return page;
}
@RequestMapping(value="write", method = RequestMethod.POST)
public String write(Model model, HttpSession session,
@RequestParam Map<String, String> params) {
logger.info("params : "+params);
String page = "index";
if(session.getAttribute("loginId") == null) {
model.addAttribute("msg", "로그인이 필요한 서비스 입니다.");
}else {
service.write(params);
page = "redirect:/list";
}
return page;
}
@RequestMapping(value = "/detail")
public String detail(Model model, HttpSession session, @RequestParam String idx) {
String page = "index";
if(session.getAttribute("loginId")==null) {
model.addAttribute("msg","로그인이 필요한 서비스 입니다");
}else {
BoardDTO bbs = service.detail(idx); //1
model.addAttribute("bbs",bbs);
page = "detail";
}
return page;
}
@RequestMapping(value="/del")
public String del(@RequestParam String idx ,Model model ,HttpSession session) {
String page ="index";
if(session.getAttribute("loginId")==null) {
model.addAttribute("msg","로그인이 필요한 서비스 입니다");
}else {
page = "redirect:/list";
service.del(idx);
}
return page;
}
}
membercontroller
package kr.co.gudi.controller;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import kr.co.gudi.service.MemberService;
@Controller
public class MemberController {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired MemberService service;
@RequestMapping(value="/")
public String index() {
return "index";
}
@RequestMapping(value="/login", method = RequestMethod.POST)
public String login(Model model, HttpSession session,
@RequestParam String id, @RequestParam String pw) {
String page = "index";
boolean success = service.login(id,pw);
logger.info("success : "+success);
if(success) {
// page = "list"; <- list.jsp (이동시킨다)
// page = "redirect:/list"; <-controller 의 /list 요청을 해라
page = "redirect:/list";
session.setAttribute("loginId", id);
}else {
model.addAttribute("msg", "아이디 또는 비밀번호를 확인 하세요!");
}
return page;
}
}
Boardservice
package kr.co.gudi.service;
import java.util.ArrayList;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import kr.co.gudi.dao.BoardDAO;
import kr.co.gudi.dto.BoardDTO;
@Service
public class BoardService {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired BoardDAO dao;
public ArrayList<BoardDTO> list() {
return dao.list();
}
public void write(Map<String, String> params) {
int row = dao.write(params);
logger.info("insert count : "+row); //row는 데이터를 건드린 갯수이다
}
public BoardDTO detail(String idx) {
dao.upHit(idx);
return dao.detail(idx);//2
}
public int del(String idx) {
return dao.del(idx);
}
}
Memberservice
package kr.co.gudi.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import kr.co.gudi.dao.MemberDAO;
@Service
public class MemberService {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired MemberDAO dao;
public boolean login(String id, String pw) {
String loginId = dao.login(id,pw);
return loginId != null;
}
}
BoardDTO
package kr.co.gudi.dto;
import java.sql.Date;
public class BoardDTO {
private int idx;
private String subject;
private String user_name;
private String content;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
private int bHit;
private Date reg_date;
public int getIdx() {
return idx;
}
public void setIdx(int idx) {
this.idx = idx;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public int getbHit() {
return bHit;
}
public void setbHit(int bHit) {
this.bHit = bHit;
}
public Date getReg_date() {
return reg_date;
}
public void setReg_date(Date reg_date) {
this.reg_date = reg_date;
}
}
BoardDAO
package kr.co.gudi.dao;
import java.util.ArrayList;
import java.util.Map;
import kr.co.gudi.dto.BoardDTO;
public interface BoardDAO {
ArrayList<BoardDTO> list();
int write(Map<String, String> params);
BoardDTO detail(String idx);//3
void upHit(String idx);
int del(String idx);
}
memberDAO
package kr.co.gudi.dao;
public interface MemberDAO {
String login(String id, String pw);
}
BoardMapper
<?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="kr.co.gudi.dao.BoardDAO">
<select id="list" resultType="kr.co.gudi.dto.BoardDTO">
SELECT idx,subject,user_name,bHit,reg_date
FROM bbs
</select>
<insert id="write" parameterType="map">
INSERT INTO bbs(
user_name,subject,content
)VALUES(
#{user_name},#{subject},#{content}
)
</insert>
<select id="detail" resultType="kr.co.gudi.dto.BoardDTO">
SELECT * FROM bbs WHERE idx =#{param1}
</select>
<update id="upHit">
UPDATE bbs SET bHit = bHit+1 where idx= #{param1}
</update>
<delete id="del">
DELETE FROM
bbs WHERE idx = #{param1}
</delete>
</mapper>
memberMapper
<?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="kr.co.gudi.dao.MemberDAO">
<select id="login" resultType="String">
SELECT id FROM member
WHERE id = #{param1} AND pw = #{param2}
</select>
</mapper>