Spring IntellIJ(DB데이터 출력)

HI_DO·2024년 10월 23일

라이브러리를 먼저 하나 설치하자
Lombok인데 필요한 코드를 자동으로 생성해줘서 자바 코드 양을 매우 줄여주는 간단한 라이브러리다.

dependencies {
  compileOnly 'org.projectlombok:lombok'
  annotationProcessor 'org.projectlombok:lombok'
}

Lombok(코드 자동생성 라이브러리)

하단에 이렇게 나오면 'Configure plugins'를 클릭하여 Lombok을 Install 해주자

  • 만약 나오지 않는 경우 'Setting -> Plugins'에서 Lombok을 검색하여 Install 한다

    그리고 'Setting'에서 'annotation process'를 검색하여 'Enable annotation processing'을 체크해주자

JPA로 데이터 입출력하려면 3가지 단계가 있다
1. repository만들기
2. 원하는 클래스에 repository 등록
3. repository.입출력문법()쓰기

1. repository만들기


ItemRepository.java

package com.apple.shop;

import org.springframework.data.jpa.repository.JpaRepository;

public interface ItemRepository  extends JpaRepository<Item, Long> {
    
}

2. 원하는 클래스에 repository 등록

ItemController.java

package com.apple.shop;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
@RequiredArgsConstructor
public class ItemController {

   private final ItemRepository itemRepository;
   
    @GetMapping("/list")
    String list(Model model){
        model.addAttribute("name","홍길동");
        return "list.html";
    }

}

3. repository.입출력문법()쓰기

ItemController.java

package com.apple.shop;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.ArrayList;

@Controller
@RequiredArgsConstructor
public class ItemController {

   private final ItemRepository itemRepository;

    @GetMapping("/list")
    String list(Model model){
        var result = itemRepository.findAll();
        System.out.println(result);

        var a = new ArrayList<>();
        a.add(30);
        a.add(40);
        System.out.println(a);

        model.addAttribute("name","홍길동");
        return "list.html";
    }

}

(.findAll은 테이블의 모든 데이터를 가져온다)
출력을 해보면

이렇게 나온다 (이게 ArrayList의 생김새다)

  • ArrayList에서 하나만 출력하려면
 var a = new ArrayList<>();
        a.add(30);
        a.add(40);
        System.out.println(a);

에서

System.out.println(a);

이 부분을

System.out.println(a.get(몇번째 자료를 출력할것인지 입력));

이렇게 변경해준다

-> 위의 코드를

ArrayList<ArrayList에 보관할 자료 타입> a = new ArrayList<>();

이렇게도 변경 가능하다

  • (참고) Lombok 없이 등록하는 법
package com.apple.shop;

import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class ItemController {

   private final ItemRepository itemRepository;
   @Autowired
   public ItemController(ItemRepository itemRepository) {
       this.itemRepository = itemRepository;
   }

    @GetMapping("/list")
    String list(Model model){
        
        model.addAttribute("name","홍길동");
        return "list.html";
    }

}
profile
하이도의 BackEnd 입문

0개의 댓글