첫번째로 할 일 : pom.xml, servlet-context.xml 수정
게시판
1. Controller
package com.javalec.spring_mvc_board_mybatis.controller;
import javax.servlet.http.HttpServletRequest;
import org.apache.ibatis.session.SqlSession;
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 com.javalec.spring_mvc_board_mybatis.dao.IBDao;
@Controller
public class BController {
@Autowired
private SqlSession sqlSession;
@RequestMapping("/list")
public String list(Model model) {
System.out.println("=======> list()");
IBDao dao = sqlSession.getMapper(IBDao.class);
model.addAttribute("list", dao.list());
return "list";
}
@RequestMapping("/write_view") public String write_view() {
System.out.println("=======> write_view()");
return "write_view";
}
@RequestMapping("/write")
public String write(HttpServletRequest request) {
System.out.println("=======> write()");
IBDao dao = sqlSession.getMapper(IBDao.class);
dao.write(request.getParameter("bName")
, request.getParameter("bTitle")
, request.getParameter("bContent"));
return "redirect:list";
}
@RequestMapping("/content_view") public String
content_view(HttpServletRequest request, Model model) {
System.out.println("=======> content_view()");
IBDao dao = sqlSession.getMapper(IBDao.class);
dao.upHit(request.getParameter("bId")); // 조회수 올리는 메소드를 먼저 실행해야 내용을 볼 때 조회수가 올라 있음
model.addAttribute("content_view", dao.contentView(request.getParameter("bId")));
return "content_view";
}
@RequestMapping("/modify")
public String modify(HttpServletRequest request) {
System.out.println("=======> modify()");
IBDao dao = sqlSession.getMapper(IBDao.class);
// xml의 param 순서와 일치 시켜야함.
dao.modify(request.getParameter("bName")
, request.getParameter("bTitle")
, request.getParameter("bContent")
, request.getParameter("bId"));
return "redirect:list";
}
@RequestMapping("/delete")
public String delete(HttpServletRequest request) {
System.out.println("=======> delete()");
IBDao dao = sqlSession.getMapper(IBDao.class);
dao.delete(request.getParameter("bId"));
return "redirect:list";
}
}
2. Dao
public interface IBDao {
public ArrayList<BDto> list();
public void write(String bName, String bTitle, String bContent);
public BDto contentView (String strId);
public void upHit(String strId);
public void modify(String bName, String bTitle, String bContent, String bId);
public void delete(String strId);
}
3. XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.javalec.spring_mvc_board_mybatis.dao.IBDao">
<select id="list" resultType="com.javalec.spring_mvc_board_mybatis.dto.BDto">
SELECT BID, BNAME, BTITLE, BCONTENT, BDATE, BHIT FROM MVC_BOARD
</select>
<insert id="write">
INSERT INTO MVC_BOARD(BID,BNAME,BTITLE,BCONTENT,BHIT) VALUES(MVC_BOARD_SEQ.NEXTVAL,#{param1},#{param2},#{param3},0)
</insert>
<select id="contentView" resultType="com.javalec.spring_mvc_board_mybatis.dto.BDto">
SELECT BID, BNAME, BTITLE, BCONTENT, BDATE, BHIT FROM MVC_BOARD WHERE BID = #{param1}
</select>
<update id="upHit">
UPDATE MVC_BOARD SET BHIT = BHIT+1 WHERE BID = #{param1}
</update>
<update id="modify">
UPDATE MVC_BOARD SET BNAME = #{param1}, BTITLE = #{param2}, BCONTENT = #{param3} WHERE BID = #{param4}
</update>
<delete id="delete">
DELETE FROM MVC_BOARD WHERE BID = #{param1}
</delete>
</mapper>
4. Dto
public class BDto {
private int bId;
private String bName;
private String bTitle;
private String bContent;
private Timestamp bDate;
private int bHit;
public BDto() { }
public BDto(int bId, String bName, String bTitle, String bContent, Timestamp bDate, int bHit) {
this.bId = bId;
this.bName = bName;
this.bTitle = bTitle;
this.bContent = bContent;
this.bDate = bDate;
this.bHit = bHit;
}
public int getbId() {
return bId;
}
public void setbId(int bId) {
this.bId = bId;
}
public String getbName() {
return bName;
}
public void setbName(String bName) {
this.bName = bName;
}
public String getbTitle() {
return bTitle;
}
public void setbTitle(String bTitle) {
this.bTitle = bTitle;
}
public String getbContent() {
return bContent;
}
public void setbContent(String bContent) {
this.bContent = bContent;
}
public Timestamp getbDate() {
return bDate;
}
public void setbDate(Timestamp bDate) {
this.bDate = bDate;
}
public int getbHit() {
return bHit;
}
public void setbHit(int bHit) {
this.bHit = bHit;
}
}
5. jsp는 동일
로그인, 회원가입
1. Controller
package com.javalec.spring_test_member_mybatis.controller;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.javalec.spring_test_member_mybatis.dao.MemDao;
import com.javalec.spring_test_member_mybatis.dto.MemDto;
@Controller
public class Memcontroller {
@Autowired
private SqlSession sqlSession;
@RequestMapping("/login")
public String login() {
System.out.println("=======> login()");
return "login";
}
@RequestMapping("/login_yn")
public String login_yn(HttpServletRequest request) {
System.out.println("=======> login_yn()");
MemDao dao = sqlSession.getMapper(MemDao.class);
ArrayList<MemDto> dto = dao.login(request.getParameter("mem_uid"));
if (dto.isEmpty()) {
return "redirect:login"; // 아이디가 없는 경우 error 창이 나오지 않고 login으로 이동 시키기 위함
} else {
if (dto.get(0).getMem_pwd().equals(request.getParameter("mem_pwd"))) {
return "redirect:login_ok";
} else {
return "redirect:login";
}
}
}
@RequestMapping("/login_ok")
public String login_ok() {
System.out.println("=======> login_ok()");
return "login_ok";
}
@RequestMapping("/register")
public String register() {
System.out.println("=======> register()");
return "register";
}
@RequestMapping("/register_ok")
public String register_ok(HttpServletRequest request) {
System.out.println("=======> register_ok()");
MemDao dao = sqlSession.getMapper(MemDao.class);
dao.register(request.getParameter("mem_uid")
, request.getParameter("mem_pwd")
, request.getParameter("mem_pwd"));
return "redirect:login";
}
}
2. Dao
public interface MemDao {
public ArrayList<MemDto> login(String mem_uid);
public void register(String mem_uid, String mem_pwd, String mem_name);
}
3. XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.javalec.spring_test_member_mybatis.dao.MemDao">
<select id="login" resultType="com.javalec.spring_test_member_mybatis.dto.MemDto">
SELECT MEM_PWD FROM MVC_MEMBER WHERE MEM_UID = #{param1}
</select>
<insert id="register">
INSERT INTO MVC_MEMBER VALUES(#{param1},#{param2},#{param3})
</insert>
</mapper>
4. Dto
package com.javalec.spring_test_member_mybatis.dto;
public class MemDto {
private String mem_uid;
private String mem_pwd;
private String mem_name;
public String getMem_uid() {
return mem_uid;
}
public void setMem_uid(String mem_uid) {
this.mem_uid = mem_uid;
}
public String getMem_pwd() {
return mem_pwd;
}
public void setMem_pwd(String mem_pwd) {
this.mem_pwd = mem_pwd;
}
public String getMem_name() {
return mem_name;
}
public void setMem_name(String mem_name) {
this.mem_name = mem_name;
}
public MemDto(String mem_uid, String mem_pwd, String mem_name) {
this.mem_uid = mem_uid;
this.mem_pwd = mem_pwd;
this.mem_name = mem_name;
}
public MemDto() {
}
}
'java,jsp,spring > Spring' 카테고리의 다른 글
Spring 트랜잭션 (0) | 2022.10.19 |
---|---|
Spring 프레임워크 표준형 (0) | 2022.10.17 |
MyBatis (0) | 2022.10.14 |
Spring Jdbc Template (0) | 2022.10.14 |
Spring 로그인 페이지 설계 (0) | 2022.10.14 |