05.공지사항 등록하기1
공지사항 등록하기1
DB
ANOTICE 테이블
create table anotice
(
nno int,
ntitle varchar2(100) not null,
nwriter_id varchar2(20) not null,
ncontent varchar2(3000) not null,
nregdate date DEFAULT SYSDATE,
updatedate date default sysdate,
nhit int DEFAULT 0,
nfiles varchar2(3000)
);
-- 자동증가
ALTER TABLE anotice ADD (
CONSTRAINT anotice PRIMARY KEY (nno));
--시퀀스
CREATE SEQUENCE anotice_seq START WITH 1;
순서
1.VO 작성
2..Mapper처리/테스트
3..service처리/테스트
4..controller 처리
5.view 처리
1.VO 작성
public class NoticeVO {
private Integer nno; // 번호
private String ntitle; //제목
private String nwriter_id; //작성자
private String ncontent; //내용
private String nregdate; // 작성날짜
private String nupdateDate; //수정날짜
private Integer nhit; //조회수
anotice 테이블에 데이터를 전달하거나 테이블로 부터 반환 받은 데이터를 담을 객체를 정의하는 클래스를 com.supurmm.model에 생성한다
2.Mapper 처리 및 테스트
- NoticeMapper.java
NoticeMapper.java를 테스트 하기 앞서 오라클에 위의 테이블을 생성한 후 아래의 코드를 작성한다
public void Noticeregister(NoticeVO vo);
NoticeMapper.java는 NoticeMapper.xml의 namespace가 기술 된다
자바들을 맵핑 해주는 역할을 한다
- NoticeMapper.xml
src/main/resource에 NoticeMapper.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="com.supermm.mapper.NoticeMapper">
NoticeMapper.xml 파일 상단에 Namespace를 이용하여 NoticeMapper.java의 경로를 적는다
NoticeMapper.xml에 쿼리문을 작성한다
<insert id="Noticeregister">
insert into ANOTICE( ntitle, nwriter_id, ncontent, nfiles )
values( #{ntitle, jdbcType=VARCHAR}, #{nwriter_id, jdbcType=VARCHAR },
#{ncontent,jdbcType=VARCHAR}, #{nfiles,jdbcType=VARCHAR})
</insert>
namespace의 속성 값과 mapper.java와 동일한 파일 이름이 작성 되어야 한다
Mapper Test하기
메서드 테스트 해보기
- NoticeMapperTest.java
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
public class NoticeMapperTest {
@Autowired
private NoticeMapper mapper;
@Autowired
private NoticeService service;
@Test
//등록테스트
public void Noticeregister(){
NoticeVO vo =new NoticeVO();
vo.setNno(1);
vo.setNtitle("테스트");
vo.setNcontent("테스트");
vo.setNwriter_id("test");
vo.setNfiles("test");
mapper.Noticeregister(vo);
}
성공으로 나오면 통과!
댓글남기기