Skip to content

Commit

Permalink
9.검색 조건 추가 Mybatis
Browse files Browse the repository at this point in the history
  • Loading branch information
braverokmc79 committed Jun 25, 2022
1 parent 91d77ff commit dec8e74
Show file tree
Hide file tree
Showing 9 changed files with 2,759 additions and 39 deletions.
2,664 changes: 2,664 additions & 0 deletions logs/logexample2.log

Large diffs are not rendered by default.

24 changes: 13 additions & 11 deletions src/main/java/kr/so/songjava/mvc/controller/BoardApiController.java
Expand Up @@ -16,12 +16,13 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import kr.so.songjava.configuration.http.BaseResponse;
import kr.so.songjava.mvc.domain.dto.BoardDTO;
import kr.so.songjava.mvc.domain.dto.BoardInsertDTO;
import kr.so.songjava.mvc.domain.entity.Board;
import kr.so.songjava.mvc.service.BoardSevice;
import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.utility.RandomString;

@RestController
@RequestMapping("/board")
Expand All @@ -36,8 +37,8 @@ public class BoardApiController {
/** 게시판 목록리턴 */
@GetMapping({"","/"})
@ApiOperation(value="목록조회", notes="게시물 번호에 해당하는 목록정보를 조회할수 있습니다.")
public BaseResponse<List<Board>> getList(){
return new BaseResponse<List<Board>>(boardService.getList());
public BaseResponse<List<BoardDTO>> getList(@ApiParam BoardDTO boardDTO){
return new BaseResponse<List<BoardDTO>>(boardService.getList(boardDTO));
}


Expand All @@ -57,13 +58,14 @@ public BaseResponse<Board> get(@PathVariable int boardSeq) {
@PutMapping("/save")
@ApiOperation(value="등록/수정처리", notes="신규 게시물 저장 및 기존 게시물 업데이트가 가능합니다.")
@ApiImplicitParams({
@ApiImplicitParam(name="boardSeq", value="게시물 번호", example = "1"),
@ApiImplicitParam(name="boardSeq", value="게시물번호", example = "1"),
@ApiImplicitParam(name="boardType", value="게시판종류", example = "NOTICE"),
@ApiImplicitParam(name="title", value="제목", example = "spring"),
@ApiImplicitParam(name="contents", value="내용", example="spring 강좌"),
})
public BaseResponse<Integer> save(BoardDTO boardDto) {
boardService.save(boardDto);
return new BaseResponse<Integer>(boardDto.getBoardSeq());
public BaseResponse<Integer> save(BoardInsertDTO boardInsertDTO) {
boardService.save(boardInsertDTO);
return new BaseResponse<Integer>(boardInsertDTO.getBoardSeq());
}


Expand All @@ -85,12 +87,12 @@ public BaseResponse<Boolean> delete(@PathVariable int boardSeq) {
public BaseResponse<Boolean> saveList1(){
int count=0;
//테스트를 위한 랜덤 1000 건의 데이터를 생성
List<BoardDTO> list=new ArrayList<BoardDTO>();
List<BoardInsertDTO> list=new ArrayList<BoardInsertDTO>();
while(true){
count++;
String title=RandomStringUtils.randomAlphabetic(10);
String contents=RandomStringUtils.randomAlphabetic(10);
list.add(BoardDTO.builder().title(title).contents(contents).build());
list.add(BoardInsertDTO.builder().title(title).contents(contents).build());
if(count >1000) {
break;
}
Expand All @@ -112,12 +114,12 @@ public BaseResponse<Boolean> saveList1(){
public BaseResponse<Boolean> saveList2(){
int count=0;
//테스트를 위한 랜덤 1000 건의 데이터를 생성
List<BoardDTO> list=new ArrayList<BoardDTO>();
List<BoardInsertDTO> list=new ArrayList<BoardInsertDTO>();
while(true){
count++;
String title=RandomStringUtils.randomAlphabetic(10);
String contents=RandomStringUtils.randomAlphabetic(10);
list.add(BoardDTO.builder().title(title).contents(contents).build());
list.add(BoardInsertDTO.builder().title(title).contents(contents).build());
if(count >1000) {
break;
}
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/kr/so/songjava/mvc/domain/dto/BoardDto.java
Expand Up @@ -7,6 +7,7 @@
import lombok.NoArgsConstructor;
import lombok.ToString;

/** 데이터를 가져올시 파라미터 */
@Data
@AllArgsConstructor
@NoArgsConstructor
Expand All @@ -16,8 +17,9 @@ public class BoardDTO {

private int boardSeq;
private BoardType boardType;
private String title;
private String title;
private String contents;
private String keyword;

}

Expand Down
25 changes: 25 additions & 0 deletions src/main/java/kr/so/songjava/mvc/domain/dto/BoardInsertDTO.java
@@ -0,0 +1,25 @@
package kr.so.songjava.mvc.domain.dto;

import kr.so.songjava.mvc.domain.enums.BoardTypeInsert;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/** 등록/수정시 파라미터 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
public class BoardInsertDTO {

private int boardSeq;
private BoardTypeInsert boardType;
private String title;
private String contents;

}


22 changes: 11 additions & 11 deletions src/main/java/kr/so/songjava/mvc/domain/enums/BoardType.java
Expand Up @@ -11,14 +11,14 @@
@AllArgsConstructor
@Getter
public enum BoardType {

NOTICE("NOTICE", "공지사항"),
FAQ("FAQ" ,"자주묻는질문"),
INQUIRY("INQUIRY" ,"1:1문의")
;
//@JsonValue // 추가
private String code;
private String label;
}
NOTICE("NOTICE", "공지사항"),
FAQ("FAQ" ,"자주묻는질문"),
INQUIRY("INQUIRY" ,"1:1문의")
;
//@JsonValue // 추가
private String code;
private String label;
}
20 changes: 20 additions & 0 deletions src/main/java/kr/so/songjava/mvc/domain/enums/BoardTypeInsert.java
@@ -0,0 +1,20 @@
package kr.so.songjava.mvc.domain.enums;

/**게시판 등록/수정시 파라미터 enum*/
public enum BoardTypeInsert {

NOTICE("공지사항"),
FAQ("자주묻는질문"),
INQUIRY("1:1문의"),
;

private String code;
private String label;

BoardTypeInsert(String label) {
this.code=name();
this.label=label;
}


}
Expand Up @@ -6,21 +6,22 @@
import org.springframework.stereotype.Repository;

import kr.so.songjava.mvc.domain.dto.BoardDTO;
import kr.so.songjava.mvc.domain.dto.BoardInsertDTO;
import kr.so.songjava.mvc.domain.entity.Board;

/** 게시판 Repository */
@Repository
public interface BoardRepository {

public List<Board> getList();
public List<BoardDTO> getList(BoardDTO boardDTO);

public Board get(int boardSeq);

public int save(BoardDTO boardDto);
public int save(BoardInsertDTO boardInsertDTO);

public void saveList(Map<String, Object> paramMap);

public int update(BoardDTO boardDto);
public int update(BoardInsertDTO boardInsertDTO);

public int delete(int boardSeq);

Expand Down
25 changes: 13 additions & 12 deletions src/main/java/kr/so/songjava/mvc/service/BoardSevice.java
Expand Up @@ -14,6 +14,7 @@

import kr.so.songjava.configuration.BaseCodeLabelEnumJsonSerializer;
import kr.so.songjava.mvc.domain.dto.BoardDTO;
import kr.so.songjava.mvc.domain.dto.BoardInsertDTO;
import kr.so.songjava.mvc.domain.entity.Board;
import kr.so.songjava.mvc.domain.enums.BaseCodeLabelEnum;
import kr.so.songjava.mvc.repository.BoardRepository;
Expand All @@ -26,8 +27,8 @@ public class BoardSevice {
private BoardRepository boardRepository;

/** 게시판 목록리턴 */
public List<Board> getList(){
return boardRepository.getList();
public List<BoardDTO> getList(BoardDTO boardDTO){
return boardRepository.getList(boardDTO);
}

/** 게시판 상세보기 */
Expand All @@ -36,19 +37,19 @@ public Board get(int boardSeq) {
}

/** 게시판 저장 */
public int save(BoardDTO boardDto) {
Board board =boardRepository.get(boardDto.getBoardSeq());
public int save(BoardInsertDTO boardInsertDTO) {
Board board =boardRepository.get(boardInsertDTO.getBoardSeq());
if(board==null) {
boardRepository.save(boardDto);
boardRepository.save(boardInsertDTO);
}else{
boardRepository.update(boardDto);
boardRepository.update(boardInsertDTO);
}
return boardDto.getBoardSeq();
return boardInsertDTO.getBoardSeq();
}

/** 게시판 업데이트 */
public int update(BoardDTO board) {
return boardRepository.update(board);
public int update(BoardInsertDTO boardInsertDTO) {
return boardRepository.update(boardInsertDTO);
}

/** 게시판 삭제 */
Expand All @@ -58,15 +59,15 @@ public Boolean delete(int boardSeq) {


/** 단순 반복문을 이용한 등록 처리 */
public void saveList1(List<BoardDTO> list) {
for(BoardDTO dto : list) {
public void saveList1(List<BoardInsertDTO> list) {
for(BoardInsertDTO dto : list) {
boardRepository.save(dto);
}
}


/** 100개씩 배열에 담아서 일괄 등록 처리 **/
public void saveList2(List<BoardDTO> boardList) {
public void saveList2(List<BoardInsertDTO> boardList) {
Map<String, Object> paramMap=new HashMap<>();
paramMap.put("boardList", boardList);
boardRepository.saveList(paramMap);
Expand Down
7 changes: 6 additions & 1 deletion src/main/resources/mybatis/sql/Board.xml
Expand Up @@ -3,13 +3,18 @@

<mapper namespace="kr.so.songjava.mvc.repository.BoardRepository">

<select id="getList" parameterType="kr.so.songjava.mvc.domain.entity.Board" resultType="kr.so.songjava.mvc.domain.entity.Board">
<select id="getList" parameterType="kr.so.songjava.mvc.domain.dto.BoardDTO" 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>
</where>
ORDER BY B.REG_DATE DESC
</select>

Expand Down

0 comments on commit dec8e74

Please sign in to comment.