- Project - Maven Project
- Language - Java
- Spring Boot - 2.6.3
- Group - 기업 도메인 명
- Artifact - 빌드의 결과물, 프로젝트 명
- Packaging - Jar
- Java - 8
- Dependencies - Spring Web,MySQL Driver,MyBatis - Framework,Lombok
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <!-- <scope>runtime</scope> --> 삭제 </dependency> <!-- 아래 내용 추가 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
src > main > java > 그룹.프로젝트명 > dto
1. dto 패키지 생성
2. dto > DTO 파일 생성(Class)
- DB 맞게 필요한 변수 선언
- Lombok의 Data로 getter, setter를 대신한다.
import lombok.Data; @Data public class DTO { private int id; private String title; private String content; private String writer; private String writeDate; private int hit; }
> src > main > java > 그룹.프로젝트명 > dao
1. dao 패키지 생성
2. dao > DaoMapper 파일 생성(Interface)
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import DTO(dto패키지 DTO import)
@Mapper
public interface Mapper {
public List<DTO> 변수명(); - dB데이터를 불러오는 메소드
public void 변수명(DTO dto); - dB에 데이터를 저장하는 메소드
}
src > main > resources > mapper
1. mapper 패키지 생성
2. mapper > 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="그룹.프로젝트명.dao.DaoMapper (DaoMapper 파일 경로)" > <select id="DaoMapper 파일의 선언된 메소드명" resultType="그룹.프로젝트명.dto.DTO (DTO 파일 경로)"> select * from table명 (필요한 쿼리문 작성) - 출력 </select> <insert id="Mapper파일의 선언된 메소드명"> INSERT INTO BOARD (HIT, TITLE, WRITEDATE, WRITER) VALUES (#{hit}, #{title}, #{writeDate}, #{writer}) (필요한 쿼리문 작성) -입력 </insert> </mapper>
- spring.datasource.url에서 자신의 DB명 기입
spring.mvc.view.prefix=/WEB-INF/views/ - JSP파일이 위치할 경로설정 spring.mvc.view.suffix=.jsp spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/DB명?useSSL=false&serverTimezone=Asia/Seoul spring.datasource.username= 아이디 spring.datasource.password= 비밀번호 mybatis.mapper-locations=classpath:mapper/Mapper.xml
src > main > java > 그룹.프로젝트명 > controller
1. controller 패키지 생성
2. controller > MainController 파일 생성 (Class)import ( DaoMapper 파일 import) 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 (DTO 파일 import) import org.springframework.web.bind.annotation.RequestMethod; @Controller public class MainController { @Autowired private DaoMapper mapper; // DB데이터를 불러오는 controller @RequestMapping("/") public String list(Model model) { model.addAttribute("list", mapper.변수명()); return "index"; } // DB에 데이터를 저장하는 controller @RequestMapping(value = "request 주소", method = RequestMethod.POST) public String write(DTO dto) { dto.setTitle(dto.getTitle().trim()); dto.setHit(dto.getHit()); dto.setWriteDate(dto.getWriteDate().trim()); dto.setWriter(dto.getWriter().trim()); mapper.write(dto); System.out.println(dto); return "redirect:"; } }
src > main > webapp
1. webapp 패키지 생성
2. webapp 패키지안에 WEB-INF, resources 패키지 생성
3. WEB-INF 패키지 안에 views 패키지 생성
4. views 패키지 안에 필요한 jsp 파일 생성
- input의 name과 DTO파일의 변수명을 맞추어준다.
- ${list} controller의 키값으로 데이터를 받아와 태그에 넣어준다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="write.do" method="post"> <label>HIT: int</label> <input type="text" name="hit"><br /> <label>Title</label> <input type="text" name="title"><br /> <label>WriteDate</label> <input type="text" name="writeDate"><br /> <label>Writer</label> <input type="text" name="writer"> <button>버튼</button> </form> ${list} </body> </html>