1. http://hongeui.tistory.com/9?category=732702 참고하세요
test01 계정으로 board 테이블 및 board_seq 시퀀스 생성 합니다.
기본 데이터도 insert문을 사용 하여 삽입 합니다.
create table board(
no number(10) primary key,
title varchar2(100) not null,
content varchar2(2000) not null,
writer varchar2(20) not null,
wdate date,
hit number(10) default 0
);
create sequence board_seq;
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'첫 번째 글의 제목','첫 번째 글의 내용','작성자1',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'두 번째 글의 제목','두 번째 글의 내용','작성자2',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'세 번째 글의 제목','세 번째 글의 내용','작성자3',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'네 번째 글의 제목','네 번째 글의 내용','작성자4',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'다섯 번째 글의 제목','다섯 번째 글의 내용','작성자5',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'여섯 번째 글의 제목','여섯 번째 글의 내용','작성자6',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'일곱 번째 글의 제목','일곱 번째 글의 내용','작성자7',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'여덟 번째 글의 제목','여덟 번째 글의 내용','작성자8',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'아홉 번째 글의 제목','아홉 번째 글의 내용','작성자9',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'열 번째 글의 제목','열 번째 글의 내용','작성자10',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'열 하나 번째 글의 제목','열 하나 번째 글의 내용','작성자11',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'열 둘 번째 글의 제목','열 둘 번째 글의 내용','작성자12',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'열 셋 번째 글의 제목','열 셋 번째 글의 내용','작성자13',sysdate);
insert into board(no,title,content,writer,wdate)
values(board_seq.nextval,'열 넷 번째 글의 제목','열 넷 번째 글의 내용','작성자14',sysdate);
select * from board;
commit;
2. src/main/java에 package 및 class 생성
패키지 명 : com.spring.board.model
클레스 명 : Board
3. Board.java에 아래 소스코드 입력 합니다.
package com.spring.board.model;
public class Board {
private int no;
private String title;
private String content;
private String writer;
private String wdate;
private int hit;
}
4. 상단에 있는 Source -> Generate Getters and Setters 클릭
Select All 선택 하여 모두 선택 하여 getter / setter 생성 합니다.
5. src/main/java에 package 및 class 생성 및 service() 메서드 추가
패키지 명 : com.spring.board.service
클레스 명 : BoardListService
6. board.xml에 아래 소스코드를 추가 합니다.
<bean class="com.spring.board.service.BoardListService" />
7. BoardController.java에 아래 소스코드 추가 합니다.
private BoardListService boardListService;
@Autowired
public BoardController(BoardListService boardListService) {
this.boardListService=boardListService;
}
8. src/main/java에 package 및 class 생성 및 list() 메서드 추가
패키지 명 : com.spring.board.dao
클레스 명 : BoardDao
9. board.xml에 아래 소스코드를 추가 합니다.
<bean class="com.spring.board.dao.BoardDao" />
10. BoardController.java에 있는 list() 메서드 아래 소스코드로 수정
@RequestMapping("/list.do")
public String list(Model model) {
model.addAttribute("list",boardListService.service());
return "list";
}
11. BoardListService.java 아래 소스코드로 수정 합니다.
public class BoardListService {
private BoardDao boardDao;
@Autowired
public void setBoardDao(BoardDao boardDao) {
this.boardDao=boardDao;
}
public List<Board> service(){
return boardDao.list();
}
}
12. BoardDao.java 아래 소스코드로 수정 합니다.
package com.spring.board.dao;
import java.util.List;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import com.spring.board.model.Board;
public class BoardDao {
private SqlSessionTemplate sqlSessionTemplate;
@Autowired
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}
public List<Board> list() {
return sqlSessionTemplate.selectList("dao.Board.list");
}
}
13. src/main/resources/mybatis 폴더에 boardDao.xml 파일 생성
14. boardDao.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="dao.Board">
<select id="list" resultType="com.spring.board.model.Board">
select no,title,writer,wdate,hit
from board
</select>
</mapper>
15. spring-mvc.xml 파일에 아래 소스코드 추가 합니다.
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="user" value="test01" />
<property name="password" value="test01" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations">
<list>
<value>classpath:/mybatis/boardDao.xml</value>
</list>
</property>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="clearCache">
<constructor-arg ref="sqlSessionFactory" />
</bean>
16. src/main/webapp/WEB-INF/view 폴더에 있는
list.jsp 파일 아래 소스코드로 수정 합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
리스트 페이지 입니다.
<table>
<tr>
<th>글번호</th>
<th>제목</th>
<th>작성자</th>
<th>작성일</th>
<th>조회수</th>
</tr>
<c:forEach var="board" items="${list}">
<tr class="dataTr">
<td id="no">${board.no}</td>
<td id="no">${board.title}</td>
<td id="no">${board.writer}</td>
<td id="no">${board.wdate}</td>
<td id="no">${board.hit}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
17. 서버(tomcat) 실행 후 http://localhost/board/list.do URL로 접속
<끝>