diff --git a/.attach_pid45597 b/.attach_pid45597 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 52d3d312284df088f4838c54c52f46e0e69b27ac..372f9ff232411cfa67e725a883b583330cd29ac2 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -2,7 +2,6 @@ package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @@ -12,10 +11,4 @@ public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } - - @GetMapping(value = "/") - public String HelloWorld() { - return "Hello World"; - } - } diff --git a/src/main/java/com/example/demo/TestController.java b/src/main/java/com/example/demo/TestController.java deleted file mode 100644 index 954ca1bad3bfa1382bbf1eefc345ac186213190f..0000000000000000000000000000000000000000 --- a/src/main/java/com/example/demo/TestController.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.example.demo; - -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.GetMapping; - -@RestController -public class TestController { - - @GetMapping(value = "/test") - public UserDto test() { - UserDto dto = new UserDto(); - dto.setAge(17); - dto.setName("Jane"); - - return dto; - } -} diff --git a/src/main/java/com/example/demo/controller/TestController.java b/src/main/java/com/example/demo/controller/TestController.java new file mode 100644 index 0000000000000000000000000000000000000000..d8186a6ca36a10a0168a066908297ae4dd808b44 --- /dev/null +++ b/src/main/java/com/example/demo/controller/TestController.java @@ -0,0 +1,27 @@ +package com.example.demo.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.google.gson.JsonObject; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +@RestController +public class TestController { + @RequestMapping(value = "/test", method = RequestMethod.GET) + public String test(@RequestParam("id") String id) { + + JsonObject obj = new JsonObject(); + obj.addProperty("title", "신사와 아가씨"); + obj.addProperty("content", "로맨틱 코미디"); + + JsonObject data = new JsonObject(); + data.addProperty("time", "토일 8시"); + obj.add("data", data); + + return obj.toString(); + } +} diff --git a/src/main/java/com/example/demo/UserDto.java b/src/main/java/com/example/demo/controller/UserDto.java similarity index 82% rename from src/main/java/com/example/demo/UserDto.java rename to src/main/java/com/example/demo/controller/UserDto.java index 6f15f7c0fdac35132256162f9a6afa798867cd37..002b8161df67cc447407036e359cf146776472f1 100644 --- a/src/main/java/com/example/demo/UserDto.java +++ b/src/main/java/com/example/demo/controller/UserDto.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.controller; import lombok.Getter; import lombok.Setter; @@ -8,8 +8,6 @@ import lombok.ToString; @Setter @ToString public class UserDto { - private String name; private Integer age; - } diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java index e456d0745e3dc93bd1b8490f1a53a47d4f88003a..3b79411d7e7c088014d8982ccab18cf498a3345b 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -11,5 +11,14 @@ import com.example.demo.entity.Item; // @NoRepositoryBean public interface ItemRepository extends JpaRepository<Item, Long> { + List<Item> findByItemNm(String itemNm); + List<Item> findByItemNmOrItemDetail(String itemNm, String itemDetail); + + List<Item> findByPriceLessThan(Integer price); + + List<Item> findByPriceLessThanOrderByPriceDesc(Integer price); + + @Query("select i from Item i where i.itemDetail like %:itemDetail% order by i.price desc") + List<Item> findByItemDetail(@Param("itemDetail") String itemDetail); } diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html new file mode 100644 index 0000000000000000000000000000000000000000..782da65567d01c753faef8da5d2b549a281a4f60 --- /dev/null +++ b/src/main/resources/static/index.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>example 1-2</title> + </head> + + <body> + <H2>example 1-2</H2> + <HR> + example 1-2 + </body> +</html> diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java index 6b88fb4218c8017a362b9bea1ed6860385e24835..5573c4f0f62b93abc79ffe6b7eb1053b5a888374 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -26,19 +26,90 @@ public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; + @PersistenceContext + EntityManager em; + + public void createItemList() { + for (int i = 1; i <= 10; i++) { + Item item = new Item(); + item.setItemNm("테스트 상품"); + item.setPrice(100000); + item.setItemDetail("테스트 상품 상세 설명"); + item.setStockNumber(100); + item.setRegTime(LocalDateTime.now()); + item.setUpdateTime(LocalDateTime.now()); + Item savedItem = itemRepository.save(item); + } + } + + @Test + @DisplayName("상품명 조회 테스트") + public void findByItemNmTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNm("테스트 상품1"); + + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("상품명, 상품상세 설명 OR 테스트") + public void findByItemNmOrItemDetailTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNm("테스트 상품1"); + + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("가격 LessThan 테스트") + public void findByPriceLessThanTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByPriceLessThan(10005); + + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("가격 내림차순 조회 테스트") + public void findByPriceLessThanOrderByPriceDesc() { + this.createItemList(); + List<Item> itemList = itemRepository.findByPriceLessThanOrderByPriceDesc(10005); + + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + @Test - @DisplayName("상품 저장 테스트") - public void createItemTest() { - Item item = new Item(); - item.setItemNm("테스트 상품"); - item.setPrice(100000); - item.setItemDetail("테스트 상품 상세 설명"); - item.setStockNumber(100); - item.setRegTime(LocalDateTime.now()); - item.setUpdateTime(LocalDateTime.now()); - - Item savedItem = itemRepository.save(item); - System.out.println(savedItem.toString()); + @DisplayName("@Query를 이용한 상품 조회 테스트") + public void findByItemDetailTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemDetail("테스트 상품 상세 설명"); + + for (Item item : itemList) { + System.out.println(item.toString()); + } } + @Test + @DisplayName("Querydsl 조회테스트1") + public void queryDslTest() { + this.createItemList(); + JPAQueryFactory queryFactory = new JPAQueryFactory(em); + QItem qItem = QItem.item; + JPAQuery<Item> query = queryFactory.selectFrom(qItem).where(qItem.itemSellStatus.eq(ItemSellStatus.SELL)) + .where(qItem.itemDetail.like("%" + "테스트 상품 상세 설명" + "%")).orderBy(qItem.price.desc()); + + List<Item> itemList = query.fetch(); + + for (Item item : itemList) { + System.out.println(item.toString()); + } + } }