From cdb175b1f6a3458bc1e360910fdda63d492d4db4 Mon Sep 17 00:00:00 2001 From: JangMH <dnsfl1517@ajou.ac.kr> Date: Wed, 2 Apr 2025 17:22:30 +0900 Subject: [PATCH] spring --- .../com/example/demo/DemoApplication.java | 4 - .../java/com/example/demo/TestController.java | 20 ----- .../demo/controller/TestController.java | 28 ++++++ .../demo/{ => controller}/UserDto.java | 2 +- .../demo/repository/ItemRepository.java | 12 ++- .../demo/repository/ItemRepositoryTest.java | 90 ++++++++++++++++++- 6 files changed, 128 insertions(+), 28 deletions(-) delete mode 100644 src/main/java/com/example/demo/TestController.java create mode 100644 src/main/java/com/example/demo/controller/TestController.java rename src/main/java/com/example/demo/{ => controller}/UserDto.java (82%) diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 9e7fe2a..39115a4 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -12,9 +12,5 @@ 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 7b7fd4e..0000000 --- a/src/main/java/com/example/demo/TestController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.example.demo; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@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 0000000..a587b1d --- /dev/null +++ b/src/main/java/com/example/demo/controller/TestController.java @@ -0,0 +1,28 @@ +package com.example.demo.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; + +@RestController +public class TestController{ + + @RequestMapping(value = "/", 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 31b7ba8..0d5311a 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; diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java index 01bcca8..b084f28 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -11,5 +11,13 @@ 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); + + +} \ No newline at end of file diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java index 7d18886..0e8792a 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -26,6 +26,10 @@ public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; + @PersistenceContext + EntityManager em; + + @Test @DisplayName("상품 저장 테스트") public void createItemTest(){ @@ -41,7 +45,91 @@ public class ItemRepositoryTest { System.out.println(savedItem.toString()); } - + public void createItemList(){ + + for(int i=1; i <=10; i++){ + Item item = new Item(); + item.setItemNm(("테스트 상품") + i); + item.setPrice(10000 + i); + item.setItemDetail("테스트 상품 상세 설명" + i); + item.setItemSellStatus(ItemSellStatus.SELL); + 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.findByItemNmOrItemDetail("테스트 상품1", "테스트 상품 상세 설명5"); + 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("@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()); + } + + } + + } -- GitLab