스프링 프레임워크 프로젝트 생성
pom.xml, web.xml 설정
- Dependency 추가
- spring-test
- spring-jdbc
- mysql-connector-java
- mybatis
- mybatis-spring
- web.xml에 한글 필터 추가
Mybatis 사용을 위해 sqlsessionfactor connection 추가 : DB 연결 및 SQL 사용을 위해 객체를 생성하고 db 정보를 입력해둔 datasource 위치를 참고하고 Mybatis 설정파일 위치와 SQL 연동 위치 설정하고 DAO 인터페이스 사용을 위한 객체를 생성한다.
공통 네임 설정을 위한 namespace 설정
안에 아무것도 기입하지 않은 이유는, 원래는 db정보를 기입한 datasource와 sqlsessionfactor connection을 여기에 기입해야하는데, root-context.xml에 대신 기입했기 때문이다.
DAO와 연동하기 위한 SQL을 작성한다. (CRUD+LIST SQL 구현)
1. create
<insert id="create"> // DAO 와 매핑을 위한 ID
insert into tbl_board (title, content, writer)
values(#{title},#{content}, #{writer})
</insert>
2. Read
<select id="read" resultType="com.myp.domain.BoardVO"> // Data를 받아오기 위한 resultType 명시
select
bno, title, content, writer, regdate, viewcnt
from
tbl_board
where bno = #{bno}
</select>
3. Update
<update id="update">
update tbl_board set title =#{title}, content =#{content}
where bno = #{bno}
</update>
4. Delete
<delete id="delete">
delete from tbl_board where bno = #{bno}
5. ListAll
<select id="listAll" resultType="com.myp.domain.BoardVO">
<![CDATA[ // SQL 내부에 연산자가 있을 경우 사용
select bno, title, content, writer, regdate, viewcnt
from tbl_board
where bno > 0
order by bno desc, regdate desc
]]>
</select>
Service 작성
service: 유지보수와 로직 프로세스를 유연하게 처리하기 위한 중간단계. (프레임워크 디자인 패턴에 들어가며, 프로젝트 규모가 커질수록 관리하기 용이하다.)
controller -> service(interface) -> ServiceImpl -> dao
- com.myp.service package 생성하고 그 밑에 Interface인 BoardService 작성
- BoardService를 인터페이스로 한 BoardServiceImpl class 생성하여 controller에서 요청될 서비스 로직을 구현한다.
게시판 목록페이지 구현
글쓰기 구현
-Get으로 단순 글쓰기 페이지를 보여주고 POST로 글쓰기 작업 완료 후 DB 전송 및 listAll.jsp에 구현한다.
views 폴더에 modify.jsp 생성하여 작성한다 (글수정도 GET/POST 2중으로 구성)
( 글수정과 글삭제는 read.jsp 페이지에서 작동한다)
글수정 controller 구현
글삭제 controller 구현