반응형
to do list
1. 임시로 테이블 집어 넣기
2. jsp 화면 만들기
3. controller 만들기
4. 매퍼에 쿼리 추가하기
5. dao 만들기
1. 임시로 테이블 집어 넣기
2. 출력 page를 생성하겠습니다.
WEB-INF > views 에 board라는 폴더를 하나 생성하고 거기에 list.jsp를 생성합니다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시물 목록</title>
</head>
<body>
<table>
<thead>
<tr>
<th>번호</th>
<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.regDate}</td>
<td>${list.writer}</td>
<td>${list.viewCnt}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
3. 컨트롤러를 만들어 주겠습니다.
package com.board.controller;
import java.util.List;
import javax.inject.Inject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.board.domain.BoardVO;
import com.board.service.BoardService;
@Controller
@RequestMapping("/board/*")
public class BoardController {
@Inject
BoardService service;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public void getList(Model model) throws Exception {
List<BoardVO> list = null;
list = service.list();
model.addAttribute("list", list);
}
}
4. BoardDAO 인터페이스와 BoardDAOImpl 클래스를 만들어 주겠습니다.
package com.board.dao;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardDAO {
public List<BoardVO> list() throws Exception;
}
package com.board.dao;
import java.util.List;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import com.board.domain.BoardVO;
// DAO에 특화된 어노테이션. @Component 어노테이션을 써도 상관 없지만, DAO 클래스들에 @Repository 어노테이션을 사용함으로써
// @Component 어노테이션이 가진 특성과 함께, DAO의 메소드에서 발생할 수 있는 unchecked exception들을 스프링의 DataAccessException으로
// 처리할 수 있는 장점 또한 갖는다.
@Repository
public class BoardDAOImpl implements BoardDAO {
// name으로 DI를 가능케 한다. 자바에서 지원하는 어노테이션이며 프레임워크에 종속적이지 않아 상사용해도 좋다.
// 타입으로 연결한다.
@Inject
private SqlSession sql;
private static String namespace = "com.board.mappers.board";
@Override
public List<BoardVO> list() throws Exception {
// TODO Auto-generated method stub
return sql.selectList(namespace + ".list");
}
}
5. BoardService 인터페이스와 BoardServiceImpl 클래스를 만들어 주겠습니다.
package com.board.service;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardService {
public List<BoardVO> list() throws Exception;
}
package com.board.service;
import java.util.List;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.board.dao.BoardDAO;
import com.board.domain.BoardVO;
@Service
public class BoardServiceImpl implements BoardService {
@Inject
private BoardDAO dao;
@Override
public List<BoardVO> list() throws Exception {
// TODO Auto-generated method stub
return dao.list();
}
}
6. roote-context.xml에 base-package를 설정하겠습니다. 설정하지 않으면 못찾아요.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="org.mariadb.jdbc.Driver" />
<property name="url" value="jdbc:mariadb://127.0.0.1:3310/board" />
<property name="username" value="soulwine" />
<property name="password" value="1111" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/mybatis-config.xml" />
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<context:component-scan base-package="com.board.domain" />
<context:component-scan base-package="com.board.dao" />
<context:component-scan base-package="com.board.service" />
</beans>
반응형
'2020 > Basic Spring board' 카테고리의 다른 글
#6 스프링 게시판 만들기 (게시물 조회 구현) (0) | 2020.06.11 |
---|---|
#5 스프링 게시판 만들기(게시물 작성 구현) (1) | 2020.06.11 |
#3 기본 게시판 만들기 ( 스프링과 데이터베이스 연동) (1) | 2020.06.09 |
#2 게시판 데이터 베이스 준비 (0) | 2020.06.09 |
#1 Spring을 이용하여 기본 게시판 만들기 (1) | 2020.06.09 |