1. com.myweb.www.domain폴더에 BoardVO 생성
package com.myweb.www.domain;
public class BoardVO {
/* create table board (
-> bno bigint not null auto_increment,
-> title varchar(200) not null,
-> content text not null,
-> writer varchar(100),
-> reg_at datetime default now(),
-> mod_at datetime default now(),
-> read_count int default 0,
-> primary key (bno)
-> );
* */
private long bno;
private String title;
private String content;
private String writer;
private String regAt;
private String modAt;
private int readCount;
public long getBno() {
return bno;
}
public void setBno(long bno) {
this.bno = bno;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getRegAt() {
return regAt;
}
public void setRegAt(String regAt) {
this.regAt = regAt;
}
public String getModAt() {
return modAt;
}
public void setModAt(String modAt) {
this.modAt = modAt;
}
public int getReadCount() {
return readCount;
}
public void setReadCount(int readCount) {
this.readCount = readCount;
}
@Override
public String toString() {
return "BoardVO [bno=" + bno + ", title=" + title + ", content=" + content + ", writer=" + writer + ", regAt="
+ regAt + ", modAt=" + modAt + ", readCount=" + readCount + "]";
}
public BoardVO(long bno, String title, String content, String writer, String regAt, String modAt, int readCount) {
super();
this.bno = bno;
this.title = title;
this.content = content;
this.writer = writer;
this.regAt = regAt;
this.modAt = modAt;
this.readCount = readCount;
}
public BoardVO() {};
}
2. com.myweb.www.controller폴더에 BoardController 생성
package com.myweb.www.controller;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import com.myweb.www.domain.BoardVO;
import com.myweb.www.service.BoardService;
@RequestMapping("/board/*")
@Controller
public class BoardController {
private static final Logger log = LoggerFactory.getLogger(BoardController.class);
@Inject
private BoardService bsv;
}
3. com.myweb.www.service폴더에
BoardService (Interface), BoardServiceImpl (class) 생성
package com.myweb.www.service;
public interface BoardService {
}
package com.myweb.www.service;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.myweb.www.controller.BoardController;
import com.myweb.www.domain.BoardVO;
import com.myweb.www.repository.BoardDAO;
@Service
public class BoardServiceImpl implements BoardService{
private static final Logger log = LoggerFactory.getLogger(BoardServiceImpl.class);
@Inject
private BoardDAO bdao;
}
4. com.myweb.www.repository폴더에 BoardDAO (Interface) 생성
package com.myweb.www.repository;
import com.myweb.www.domain.BoardVO;
public interface BoardDAO {
}
5. views폴더안에 board폴더 생성 - register.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>register page</title>
</head>
<body>
<form action="/board/register" method="post">
title : <input type="text" name="title"> <br>
writer : <input type="text" name="writer"> <br>
content : <input type="text" name="content"><br>
<button type="submit" id="regBtn">등록</button> <br>
</form>
</body>
</html>
6. views폴더안 home.jsp에 controller안 /register로 이동하는 버튼 생성
( /board/list 목록으로 이동은 미리 생성 )
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page session="false" %>
<html>
<head>
<title>index</title>
</head>
<body>
<h1>
Hello world!
</h1>
<a href="/board/register"><button type="button">글 등록</button></a>
<a href="/board/list"><button type="button">글 목록</button></a>
</body>
</html>
7. BoardController에서 register관련 코드 작성 -> 연결해서 mapper까지 작성
- @GetMapping("/register") 으로 이동하는 메서드 생성
- @PostMapping("/register") 으로 DB에 저장하는 메서드 생성
package com.myweb.www.controller;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 com.myweb.www.domain.BoardVO;
import com.myweb.www.service.BoardService;
@RequestMapping("/board/*")
@Controller
public class BoardController {
private static final Logger log = LoggerFactory.getLogger(BoardController.class);
@Inject
private BoardService bsv;
@GetMapping("/register")
public void register() {
}
@PostMapping("/register")
public String register(Model m, BoardVO bvo) {
log.info(">>>bvo : "+ bvo);
int isOk = bsv.boardRegister(bvo);
return "home";
}
}
package com.myweb.www.service;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.myweb.www.controller.BoardController;
import com.myweb.www.domain.BoardVO;
import com.myweb.www.repository.BoardDAO;
@Service
public class BoardServiceImpl implements BoardService{
private static final Logger log = LoggerFactory.getLogger(BoardServiceImpl.class);
@Inject
private BoardDAO bdao;
@Override
public int boardRegister(BoardVO bvo) {
log.info("board reigster in");
return bdao.insert(bvo);
}
}
<?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.myweb.www.repository.BoardDAO">
<insert id="insert">
insert into board (title, writer, content)
values (#{title}, #{writer}, #{content})
</insert>
</mapper>
== 출력 화면 ==
'Spring > Spring-eclipse' 카테고리의 다른 글
[mapper] parameterType=""을 2개 넣는 방법 (0) | 2023.07.13 |
---|---|
[spring] security 2. Board list 게시판 리스트 (2) | 2023.06.23 |
[spring] security 1.com.myweb.www.config설정 (0) | 2023.06.22 |
[spring] security 0. DB생성, pom.xml작성 (0) | 2023.06.22 |
[spring] 파일 입출력 (0) | 2023.06.13 |