book 조회 api가, borrow가 된 책, 그렇지 않은 책도 보여줘야 한다고 판단하였습니다. 그래서, Query string이 borrowFlag가 추가되었는데요. 백단에서 어떻게 처리를 해야 할까요? 일단, Controller, Service는 인자 하나를 더 받게 바꿔야 할 거고, mapper 인터페이스에서 selectAll 부분도 바꿔야 할 겁니다. 그 전에, 제가 무엇을 해야 할 지 부터 짚고 넘어가 보겠습니다. 일단, bookClass, bookName으로 검색하는 것은 있으니까, 누군가 책을 빌려갔는지 여부를 조회 api의 쿼리 파라미터로 추가해야 합니다. 책을 빌렸는지, 안 빌렸는지 여부는, 내가 책을 빌리려고 할 때, 어떤 책을 빌릴 수 있는 지 알기 위해 필요합니다. 그래서, bor..
웹/스프링부트 검색 결과
도서관 api 토이 프로젝트를 하고 있습니다. 책을 추가하는 api를 개발하려고 하는데요. 추가가 성공적으로 되었다면, 추가된 record를 리턴하고 싶어요. auto_increment가 된 필드도 같이요. 어떻게 하면 좋을까요? 여기서 핵심은, 책을 추가할 때, bookClass와 bookName을 json으로 넘겨준다는 것입니다. bookId는 넘겨주지 않는데요. 이것은 자동 증가되는 serial이기 때문입니다. 그냥 책 데이터가 추가되면, 자동 증가되는 값입니다. [관련글] postgresql serial이 무엇인지 간단하게 알아봅시다. POST /book은 bookName과 bookClass를 받아서, book 테이블에 책 레코드를 추가합니다. 만약에 추가가 성공하면, bookId와 이름, Cla..
mybatis의 xml mapper는 dynamic sql도 지원하고 있습니다. 저는 처음에 배울 때, if나 foreach 정도만을 써 왔는데요. trim도 알아두면 상당히 강력한 도구가 될 듯 싶습니다. 검색 api를 보면서 감을 잡아보도록 하겠습니다. 저번 시간에 모든 책을 get 하는 api를 작성한 적이 있었습니다. 이것을 Query 파라미터로 받게 바꾸어 보겠습니다. 저는 bookClass와 bookName을 선택적인 Query parameter로 받게끔 하였습니다. 만약에, 해당 Key가 없다면, null 값으로 들어갈 겁니다. 왜냐하면 모델 book의 bookClass는 int가 아닌 Integer로 선언되었기 때문입니다. 쿼리 결과는 위와 같이 나와야 합니다. 먼저 BookMapper의 ..
저번 시간에 mybatis-generator를 이용해서 mapper Interface, model, 그리고 xml mapper를 떨궜습니다. 이번 시간에는 이것을 이용해서, 모든 도서를 조회하는 API만 만들어 보겠습니다. 프로젝트 구조는 아래와 같습니다. 여기서 우리가 추가할 부분은, bookController, bookService입니다. 그리고, 바꿔야 할 부분은 application.properties입니다. 먼저, server.port는 7780으로 설정하였습니다. 그리고, mybatis.mapper-locations를 classpath:mapper/**/*.xml로 설정했는데요. 이는, mybatis-spring-boot-starter 때문입니다. 문서를 보시다 보면, Configuration..
spring boot에서 mybatis를 편하게 쓰기 위해, mybatis generator를 쓰곤 합니다. 이클립스에서는 쉽게 할 수 있는데요. 인텔리제이는 그렇지 않더라고요. 공식 문서를 안 읽은 댓가를 호되게 치뤘는데요. 간단하게 데이터베이스에 있는 테이블 정보를 읽어와서 어떻게 mapper, interface, model 등으로 바꾸는지 알아보도록 하겠습니다. 저는 postgreSQL을 쓸 것이니, postgreSQL Driver를 추가하였습니다. 그리고 MyBatis Framework도 추가하였습니다. 그리고 스프링 Web 디펜던시도 추가하였습니다. 이 문서를 보면, maven에서 어떻게 설정하는지 나와 있는데요. 플러그인을 추가하는 형태인가 봅니다. 요래 추가하면, plugin에 mybatis..
최근댓글