본문 바로가기
Spring

230206 Spring mybatis 실습

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