1 분 소요

공지사항 목록1

순서

1.Mapper처리/테스트

2.service처리/테스트

3.controller 처리/테스트

4.view 처리


 

1.Mapper처리 및 테스트

  • NoticeMapper.java
 //게시판 목록이동
	public List<NoticeVO> Noticelist();
//게시판 페이징한 목록 
public List<NoticeVO> getNoticePaging(Criteria cri);

1. SELECT 결과 하나의 행에 대한 정보만 얻을 경우 VO를 클래스타입으로 받아도 되나 리스트 같이 두개의 행으로 이루 어져 있을 경우 List타입으로 반환 받는다

2. List는 배열과 다르게 삽입되는 데이터에 따라 크기가 동적으로 변한다

 

  • NoticeMapper.xml

목록 페이지

<select id="Noticelist" resultType="com.supermm.model.NoticeVO">
		select * from anotice order by nno
	</select>

공지사항의 번호를 가져온다.

 

페이징 처리한 목록 페이지


<select id="getNoticePaging"
		resultType="com.supermm.model.NoticeVO">	
		  <![CDATA[
        
        select nno, ntitle, nwriter_id, ncontent, nregdate, updatedate from(
        
                select  rownum  as rn, nno, ntitle, nwriter_id, ncontent, nregdate, updatedate
                  
                from anotice where rownum <= #{pageNum} * #{amount} 
    ]]>            
                <if test="keyword != null">
                    and ntitle like '%'||#{keyword}||'%' 
                </if>
    
    <![CDATA[
                    
                )
                    
        where rn > (#{pageNum} -1) * #{amount}
    
    ]]>
    
 </select>

번호,제목,작성자,내용,날짜, 업데이트 날짜를 가져온다.

CDATA 구문 : 쿼리문에 문자열 비교 연산자나 부등호를 처리해야 할 경우가 발생 할때 CDATA 구문으로 감싸면 인식 가능하다 (EX) > 같은 경우 태그로 인식하는데 CDATA 구문을 사용할 경우 부등호로 인식한다)

and연산자를 이용하여 ntitle컬럼에 대한 조건을 추가한다.

제목별 검색 기능 구현에 필요한 쿼리문을 담고 있다.

 

Mapper Test하기

메서드 테스트 해보기

  • NoticeMapperTest.java

	//게시판 목록 테스트

	public void NoticelistGet() {
	
	// 일반적인 for 문 
	List list = mapper.Noticelist();
	for(int i=0; i <list.size(); i++) {
		
		System.out.println("" + list.get(i));
		
		//foreach문(향상된 for문)
		for(Object a: list){
			System.out.println("" + a);
		}
		//foreach문 & 람다식
		list.forEach(notice->System.out.println("" + notice));
			
			
		}
	

	}


}

 

2.service처리/테스트

  • Noticeservice.java
	List<NoticeVO> getNoticePaging(Criteria cri);

메서드를 선언한다.

  • Noticeservicelmpl.java
	// 페이징 적용
	public List<NoticeVO> getNoticePaging(Criteria cri) {

		return noticemapper.getNoticePaging(cri);
	}

오버라이딩하여 구현 한다


 

service 테스트

메서드 테스트 해보기

public void NoticelistGet() {
	
	
	
	 service.Noticelist().forEach(notice->System.out.println("" + notice));

    }
}

댓글남기기