글목록 보여주기

이경현·2024년 11월 6일

메서드 구현 순서(boardList)

1. controller

1-1 : 필요한 객체 자동으로 생성해주는 어노테이션으로 가져오기

@Autowired(required=false)
	private BoardService boardService;
@Autowired(required=false)
	private PageMaker pm;
    

1-2 : 메서드와 연결하기 위해 requestMapping 어노테이션 사용

여기는 리스트 들어왔을 때 작동해야할 메서드들 추가해주기 (5번에서)

@RequestMapping(value="boardList.aws")
	public String boardList() {
		
		return null;
	}

2. service :

2-1 인터페이스 생성하고 메서드 작성

public interface BoardService {

	public ArrayList<BoardVo> boardSelectAll(searchCriteria scri);
	public int boardTotalCount(searchCriteria scri);
}

3. mapper.xml

3-1 mapper.xml 파일에서 메서드 실행할 sql 작성

   <select id = "boardSelectAll" parameterType="HashMap" resultType="bv">		<!-- resultType="mv" >> 여러개 담기  하나를 담아도 mv로 담아오자 -->   
  		SELECT * FROM board where delyn='N' 
 		
  		<include refid = "search"/>
  		
  		ORDER BY originbidx desc, depth asc limit #{startPageNum}, #{perPageNum} 		
  	</select>
  	  	
  	<select id ="boardTotalCount" parameterType="scri" resultType="int" >
  		SELECT count(*) as cnt FROM board where delyn='N'	
 		<include refid = "search"/>
  	</select>

3-2 검색기능 구현할 sql 쿼리문 작성

    <sql id = "search">
    
    	<if test="searchType != null and searchType.equals('writer')">
    		and writer like concat('%',#{keyword},'%')
    	</if>  
    	
    	
    	<if test="searchType != null and searchType.equals('subject')">
    		and subject like concat('%',#{keyword},'%')
    	</if>       
    
    </sql>

4. serviceImpl 클래스

4-1 : mybatis 와 연동

public class BoardServiceImpl implements BoardService {

	private BoardMapper bm; 		// 매퍼클래스

	
	  @Autowired // 객체생성 어노테이션 
	  public BoardServiceImpl(SqlSession sqlSession) {
	  this.bm = sqlSession.getMapper(BoardMapper.class); 
	  }

4-2 override 는 class 이름에 레드라인 들어오면 add 하기
add 하면 처음 나오는 코드

@Override
		public ArrayList<BoardVo> boardSelectAll(searchCriteria scri) {
			// TODO Auto-generated method stub
			return null;
		}

작성해둔 메서드 모두 추가해주고 고칠 부분 고치기


	@Override
	public ArrayList<BoardVo> boardSelectAll(searchCriteria scri) {
		HashMap<String,Object> hm = new HashMap<String,Object>();
		
		hm.put("startPageNum", (scri.getPage()-1)*scri.getPerPageNum());	
		hm.put("searchType",scri.getSearchType());
		hm.put("perPageNum",scri.getPerPageNum());
		hm.put("keyword",scri.getKeyword());
		
		
		ArrayList<BoardVo> blist = bm.boardSelectAll(hm);
		return blist;
	}


	@Override
	public int boardTotalCount(searchCriteria scri) {		
		int cnt = bm.boardTotalCount(scri);	
		return cnt;
	}

}

5. controller

5-1 : 1-2 에서 작성했던 @RequestMapping 아래에 완성된 메서드 호출해주기

@RequestMapping(value="boardList.aws")
	public String boardList() {
		
		return null;
	}
@RequestMapping(value="boardList.aws")		// 목록에서 처리해야할 부분 1. 글목록 2. 페이지 3. 검색 4. 
	//boardList.aws 이 값이 넘어오면 연결해줄 메서드 매핑해주기
	public String boardList(searchCriteria scri, Model model) {
		// 파라미터값은 scri 랑 model을 받는다
		
		
		int cnt = boardService.boardTotalCount(scri);
		// boradService 안에 있는 boardTotalCount 메서드 실행하고 결과값을 cnt 에 담는다
		
		pm.setScri(scri);
		pm.setTotalCount(cnt);
		//pm 안에있는 scri 랑 TotalCount를 새로 담는다
		
		
		ArrayList<BoardVo> blist =  boardService.boardSelectAll(scri);
		// blist 에 board
		
		model.addAttribute("blist", blist);		
		model.addAttribute("pm", pm);	
		
		String path="WEB-INF/board/boardList";		
		return path;
	}

pm, blist 는 list 페이지에서 사용

0개의 댓글