728x90
<사전작업 >
|
게시판에서 mariaDB로 부터 데이터를 불러오는 Read 기능 구축
1. BoardVO 생성
▶com.board.domain 패키지 생성 -> BoardVO클래스 생성
▶root-conext에 domain 패키지 추가
<context:component-scan base-package="com.board.domain" />
▶테이블 생성한 칼럼을 참고하여 BoardVO 작성
package com.board.domain;
public class BoardVO {
/*
CREATE TABLE tbl_board(
bno INT NOT NULL AUTO_INCREMENT,
title TEXT NOT NULL,
writer VARCHAR(10) NOT NULL,
content VARCHAR(200) NOT NULL,
regdate TIMESTAMP DEFAULT NOW(),
PRIMARY KEY(bno)
);
*/
private int bno;
private String title;
private String writer;
private String content;
private String regdate;
//-------------------------------getter setter------------------------------
public int getBno() {
return bno;
}
public void setBno(int bno) {
this.bno = bno;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getRegdate() {
return regdate;
}
public void setRegdate(String regdate) {
this.regdate = regdate;
}
//-------------------------------constructor------------------------------
public BoardVO() { //기본생성자
}
//매개변수 생성자
public BoardVO(int bno, String title, String writer, String content, String regdate) {
super();
this.bno = bno;
this.title = title;
this.writer = writer;
this.content = content;
this.regdate = regdate;
}
//-------------------------------toString------------------------------
@Override
public String toString() {
return "BoardVO [bno=" + bno + ", title=" + title + ", writer=" + writer + ", content=" + content + ", regdate="
+ regdate + "]";
}
}
2. mapper 에 쿼리문 작성
<?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.board.mapper.cboardMapper">
<!-- 게시물 리스트 -->
<select id="list" resultType="com.board.domain.BoardVO">
select bno, title, writer, content, regdate
from tbl_board
</select>
</mapper>
3. com.board.dao 패키지 생성 및 BoardDAO인터페이스, BoardDAO구현 클래스 생성
▶root-context.xml에 패키지 등록
<context:component-scan base-package="com.board.dao" />
▶BoardDAO 인터페이스 생성
package com.board.dao;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardDAO {
//게시물 리스트
public List<BoardVO> list() throws Exception;
}
▶BoardDAO 구현 클래스 생성
package com.board.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.board.domain.BoardVO;
@Repository
public class BoardDAOImpl implements BoardDAO {
@Autowired
SqlSession sql;
private static String namespace = "com.board.mapper.boardMapper";
//-----------------------------게시판 리스트------------------------------
@Override
public List<BoardVO> list() throws Exception {
return sql.selectList(namespace+".list");
}
}
4. com.board.service 패키지 생성 및 BoardService인터페이스, Boardservice구현 클래스 생성
▶root-context.xml에 패키지 등록
<context:component-scan base-package="com.board.service" />
▶BoardService 인터페이스 생성
package com.board.dao;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardService {
//게시물 리스트
public List<BoardVO> list() throws Exception;
}
▶BoardService 구현 클래스 생성
package com.board.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.board.dao.BoardDAO;
import com.board.domain.BoardVO;
@Service
public class BoardServiceImpl implements BoardService {
@Autowired
private BoardDAO dao;
//--------------------------게시물 리스트------------------------------
@Override
public List<BoardVO> list() throws Exception {
return dao.list();
}
}
5. controller 생성
▶com.board.controller 안에->BoardController. java 생성
package com.board.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.board.domain.BoardVO;
import com.board.service.BoardService;
@Controller
@RequestMapping("/board/*")
public class BoardController {
@Autowired
private BoardService service;
//--------------------------------게시물 리스트 ------------------------------
@GetMapping("/list")
public void getList(Model model) throws Exception{
List<BoardVO> list = service.list();
model.addAttribute("list",list);
}
}
6. VIEW 작업 -> JSP 생성
▶src ->main->webapp->WEB-INF->Views 안에 board 폴더 생성 후 list.jsp 생성
(home.jsp를 복사해서 board 폴더에 붙여 넣은 후 이름 변경)
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>게시판 리스트</title>
</head>
<body>
<h1>BOARD LIST</h1>
<hr>
<br>
<table>
<thead>
<tr>
<th>번호</th>
<th>제목</th>
<th>작성자</th>
<th>작성일</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="list">
<tr>
<td>${list.bno}</td>
<td>${list.title}</td>
<td>${list.writer}</td>
<td>${list.regdate}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
(※jquery 사용시 필요한 코드 추가)
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
7. 구동
8. 정상구동 확인
728x90
'Spring > [CRUD기초]_게시판 만들기' 카테고리의 다른 글
[게시판]1. C(Create)_데이터 삽입 (0) | 2022.05.08 |
---|
댓글