mybatis-config.xml, BoardVO.java, MySQL
더보기
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 마이바티스 부연 설정. -->
<configuration>
<typeAliases>
<typeAlias type="com.simple.command.ScoreVO" alias="ScoreVO"/>
<typeAlias type="com.simple.command.BoardVO" alias="BoardVO"/>
</typeAliases>
</configuration>
BoardVO.java
package com.simple.command;
public class BoardVO {
private int num;
private String name;
private String title;
private String content;
public BoardVO() {}
public BoardVO(int num, String name, String title, String content) {
super();
this.num = num;
this.name = name;
this.title = title;
this.content = content;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
}
@Override
public String toString() {
return "BoardVO [num=" + num + ", name=" + name + ", title=" + title + ", content=" + content + "]";
}
}
MySQL
create table board (
num int primary key auto_increment,
name varchar(30) not null,
title varchar(30) not null,
content varchar(300) not null
);
insert into board(name,title,content) values("테스터","테스트","테스트용입니당");
insert into board(name, title, content) values("공이","두번째","두번째입니다.");
select * from board;
boardRegister.jsp, boardList.jsp, boardResult.jsp
더보기
boardRegister.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
0.테이블 생성 num, name, title, content
1.BoardServiceController 를 생성하세요.
2.다음 화면을 처리하는 메서드를 컨트롤러 에 생성하세요
3.폼 태그 요청을 처리하는 메서드를 생성하세요.
4.service계층 - 마이바티스 연동을 통해 게시글을 등록하는 작업을 처리하세요.
5.등록 후에는 boardResult 페이지로 이동하세요.
--%>
<h2>게시글 등록 (화면 URL요청: 컨패스/service/boardRegister)</h2>
<form action="boardRegist" method="post">
작성자:<input name="name"><br>
제목:<input name="title"><br>
내용:<textarea rows="3" name="content"></textarea><br>
<input type="submit" value="등록">
<%--
1.boardList 요청을 처리하는 메서드를 컨트롤러에 생성하세요.
2.service계층 -마이바티스 연동을 통해 게시글 목록을 가지고 boardList 페이지로 이동하세요.
3.boardList 페이지에서는 게시글 목록을 화면에 출력하세요
--%>
<input type="button" value="목록" onclick="location.href='boardList'">
</form>
</body>
</html>
boardList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>게시글 목록</h2>
<table>
<tr>
<td>번호</td>
<td>작성자</td>
<td>제목</td>
<td>내용</td>
<td>비고</td>
</tr>
<!-- 반복데이터처리 -->
<c:forEach var="blist" items="${lists}" varStatus="num">
<tr>
<td>${blist.num}</td>
<td>${blist.name}</td>
<td>${blist.title}</td>
<td>${blist.content}</td>
<td><input type="button" value="삭제" onclick="location.href='deleteBoard?num=${blist.num}'"></td>
</tr>
</c:forEach>
<!--
1. boardDelete로 삭제 처리하세요.
2. 삭제 후엔 목록화면으로 리다이렉트 하세요.
-->
</table>
<%--게시글 작성페이지로 이동시키세요. --%>
<a href="boardRegister">게시글 작성</a>
</body>
</html>
boardResult.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>게시물 등록이 완료되었습니다</h2>
<a href="boardRegister">추가 작성하기</a>
<a href="boardList">게시글 리스트</a>
</body>
</html>
BoardServiceController.java
package com.simple.controller;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.simple.command.BoardVO;
import com.simple.score.service.BoardService;
@Controller
@RequestMapping("/service")
public class BoardServiceController {
@Autowired
@Qualifier("boardservice")
private BoardService bservice;
//regist
@RequestMapping("/boardRegister")
public String showBoardRegister() {
return "service/boardRegister";
}
@PostMapping("/boardRegist")
public String boardRegist(BoardVO vo) {
bservice.boardRegist(vo);
return "service/boardResult";
}
//result
@RequestMapping("/boardResult")
public String boardResult() {
return "service/boardResult";
}
//list
@RequestMapping("/boardList")
public String boardList(Model model) {
ArrayList<BoardVO> list=bservice.getList();
model.addAttribute("lists",list);
return "service/boardList";
}
//delete
@RequestMapping("/deleteBoard")
public String deleteBoard(@RequestParam("num")int num) {
bservice.boardDelete(num);
return "redirect:/service/boardList";
}
}
BoardService.java
package com.simple.score.service;
import java.util.ArrayList;
import org.springframework.stereotype.Service;
import com.simple.command.BoardVO;
public interface BoardService {
public void boardRegist(BoardVO vo); //등록
public ArrayList<BoardVO> getList(); //조회
public void boardDelete(int num); //삭제
//위 메서드를 구현하는 클래스 BoardServiceImpl을 생성하고 오버라이딩하세요
}
BoardServiceImpl.java
package com.simple.score.service;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.simple.board.mapper.BoardMapper;
import com.simple.command.BoardVO;
@Service("boardservice")
public class BoardServiceImpl implements BoardService{
@Autowired
private BoardMapper boardMapper;
@Override
public void boardRegist(BoardVO vo) {
boardMapper.boardRegist(vo);
}
@Override
public ArrayList<BoardVO> getList() {
return boardMapper.getList();
}
@Override
public void boardDelete(int num) {
boardMapper.boardDelete(num);
}
}
BoardMapper.java
package com.simple.board.mapper;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
import com.simple.command.BoardVO;
@Mapper //mybatis-scan
public interface BoardMapper {
public void boardRegist(BoardVO vo); //등록
public ArrayList<BoardVO> getList(); //조회
public void boardDelete(int num); //삭제
}
BoardMapper.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.simple.board.mapper.BoardMapper">
<insert id="boardRegist">
insert into board(name,title,content)
values(#{name},#{title},#{content})
</insert>
<select id="getList" resultType="BoardVO">
select * from board order by num desc
</select>
<delete id="boardDelete">
delete from board where num=#{num}
</delete>
</mapper>



'Spring' 카테고리의 다른 글
| 230207 Spring 타일즈 뷰 템플릿 (0) | 2023.02.07 |
|---|---|
| 230207 Spring 경로 맞추기 (0) | 2023.02.07 |
| 230206 Spring 예제 dao mybatis로 바꾸기 (0) | 2023.02.06 |
| 230206 Spring MyBatis mapper (0) | 2023.02.06 |
| 230203 Spring Service, DAO 예제 DB연결 (0) | 2023.02.03 |