나프 - 게시판 만들기(1)
1. 3-Tier 방식의 이해
- Spring에서 DB 작업 간소화로 사용자 요구사항을 반영하고, 컨트롤러 비대해지는 것을 방지하기 위해
- Presentation Tier <-Business Tire -> Persistence Tire의 3개의 Tire로 나누어 요청을 처리한다.
Presentation: 웹/화면 계층, Controller(FrontController+POJO),JSP를 이용한 VIEW구성 담당
Business Tire : 비지니스 계층, 고객 요구사항 반영
로직을 기준으로 처리 (메서드 이름은 현실적인 로직의 이름을 붙이는 것이 관례이다.)
등록,회원검색,수정,삭제 등 Presentation 계층을 통해 메시지를 받고 DB와 협력하여 로직을 처리
Persistence Tire: 영속계층, 데이터에 대한 CRUD
VO클래스 생성
Mapper 인터페이스 + XML파일
DB를 기준으로 메서드 이름을 설계
비지니스계층과 협력
2. Spring 환경설정 (DB설정)
- 스프링 버전 4.2.4 버전
- java는 1.8버전
2.1 DB 관련 생성
> 게시판 테이블을 미리 만들어 두자
create table tb_board(
idx int not null auto_increment,
title varchar(100) not null,
contents varchar(4000) not null,
count int,
writer varchar(30) not null,
indate datetime default now() not null,
primary key(idx)
);
> 다음으로 테이블과 매칭되는 VO객체를 만들자
public class BoardVO {
private int idx;
private String title;
private String contents;
private int count;
private String writer;
private String indate; //날짜와 String은 호환가능
// toString, getter, setter 등 추가
}
> Mapper Interface 및 xml파일 설정
public interface BoardMapper {
public List<BoardVO> getList();//게시물 가져오기
public void insert(BoardVO board); // 게시물 등록
public BoardVO read(int bno); //게시물 상세보기
public int delete (int bno); // 게시물 삭제
public int update (BoardVO board);//게시물 수정
}
- xml파일은 mybatis 사이트를 참고해서 만들었다.
namespace와 인터페이스명 - sql태그 id와 메서드명이 일치하도록 하자
2.2 DB관련 스프링 환경설정
- root xml파일에 mybatis,JDBC,db properties 관련 설정과 mapper 패키지를 스캔해서 스프링 컨테이너에
등록시켜두어야 한다.
<!-- Mybatis sqlsessionFacroty -->
<!-- @Mapper보고 xml의 namespace와 인터페이스 이름보고 연결시켜줌 -->
<bean id ="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="/WEB-INF/mybatis/config.xml" />
</bean>
<!-- JDBC연결(DataSource) -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<!-- db.properties 파일 연결 -->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="/WEB-INF/mybatis/db.properties"/>
</bean>
<!-- @Mapper와 mapper.xml파일 스캔-->
<mybatis-spring:scan base-package="kr.inflearn.mapper"/>
1. </beans>
- 다음으로 config.xml파일과 DB.properties 파일을 만들자 각각의 파일에는 타입앨리어스, Datasource생성을 위한 정보를 등록 해둔다.
- 그 후에 DB와 관련된 api를 메이븐을 통해 다운받자
참고자료: 나프2탄(박매일) - 인프런
https://www.inflearn.com/course/%EB%82%98%ED%94%84-mvc-2