스프링

 

사용버전 

스프링부트 버전 :  2.7.0  - mybatis 

 

라이브러리 commons-lang3 추가

 

		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.12.0</version>
		</dependency>

 

board.xml

  
  <select id="getList"     resultType="kr.so.songjava.mvc.domain.entity.Board">
    SELECT
         B.BOARD_SEQ,
         B.BOARD_TYPE,
         B.TITLE,
         B.REG_DATE         
   FROM T_BOARD B 
   <where>
        <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(keyword)">
            AND B.TITLE LIKE CONCAT('%',  #{keyword}, '%')
        </if>
        
        <if test="@org.apache.commons.lang3.ObjectUtils@isNotEmpty(boardTypes)">
            AND B.BOARD_TYPE IN (
                <foreach collection="boardTypes" item="value" separator=",">
                    #{value}
                </foreach>
            )
        </if>        
   </where>   
   ORDER BY B.REG_DATE DESC         
  </select>
  

 

 

 

1) json 객체 출력용 파라미터 객체

BoardDTO

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/** 데이터를 가져올시 파라미터 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
public class BoardDTO {
	
	private int boardSeq;
	private BoardType boardType;
	private String title;	
	private String contents;
	private String keyword;
		
}

 

 

enum

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat.Shape;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**게시판 종류*/
@JsonFormat(shape = Shape.OBJECT) // 추가
@AllArgsConstructor
@Getter
public enum BoardType {
 
    NOTICE("NOTICE", "공지사항"),
    FAQ("FAQ" ,"자주묻는질문"),
    INQUIRY("INQUIRY" ,"1:1문의")
    ;
         
    //@JsonValue // 추가
    private String code;
    private String label;
         
}

 

 

2) 검색용 파라미터 객체

BoardSearchParameter

import lombok.Data;

@Data
public class BoardSearchParameter {	
	private String keyword;
	private List<BoardType> boardTypes;  //배열로 다중 검색 처리를 위해 , NOTICE, FAQ,INQUIRY	
}

 

 

 

3) controller 사용 

	    /** 게시판 목록리턴 */
    @GetMapping({"","/"})
    @ApiOperation(value="목록조회", notes="게시물 번호에 해당하는 목록정보를 조회할수 있습니다.")
    public BaseResponse<List<BoardDTO>> getList(@ApiParam BoardSearchParameter boardSearchParameter){
        return new BaseResponse<List<BoardDTO>>(boardService.getList(boardSearchParameter));
    }

 

 

소스 :

https://github.com/braverokmc79/sprig_boot_2.7.0_mybatis_board_project/commit/dec8e749c386ee0f3cc43027cb17f43eea9ab373

 

 

 

 

 

about author

PHRASE

Level 60  라이트

은 장 쓰듯 , 아끼지 않고 헤프게 쓴다는 말.

댓글 ( 4)

댓글 남기기

작성