SQL, JPA

Boram_Choi·2021년 11월 6일
0

SQL


RDBMS

: 관계형 정보관리시스템 (고도화된 엑셀) ex. H2, MySQL

  • 엑셀파일 하나 = DB
  • 시트 = Table (spring 의 Domain, @Entity)
  • 1234... 행 = 데이터
  • (spring 의 Repository가 SQL 역할)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ

SQL 문

  • bigint = JAVA의 Long

  • varchar = JAVA의 String

  • 자동 열로 생성 = JAVA의 @Column

  • NOT NULL : 어느하나도 비면 안된다. (꼭 있어야함) = JAVA의 (nullable = false)

  • AUTO_INCREMENT : 자동증가 = JAVA의 @GeneratedValue(strategy=GenerationType.AUTO)

  • PRIMARY KEY(id) : 1,2,3행 선택, 식별자 = JAVA 의 @Id

*일일이 작성해줘야 하는 SQL 을 JPA 가 자동으로 작성해줌

JPA : SQL 을 쓰지않고 데이터를 CRUD 해주는 번역기. Interface를 통해서만 사용.
Interface : 클래스에서 멤버가 빠진, 메소드모음
extends 상속(가져와서 사용)

interface는 기능만 정의하고 jparepository가 구현, sql 문을 다 만들어 준다


public interface CourseRepository extends JpaRepository<Course, Long> {
}

Course라는 클래스를 대상으로 Long 타입의 Jpa를 상속받아올꺼야.

ㅡㅡㅡㅡㅡ
CourseRepository.java 인터페이스
(src>main>java>com.sparta.week02>domain>CourseRepository 에 작성.)

public interface CourseRepository extends JpaRepository<Course, Long> {
}코드를 입력하세요

했기때문에 Week02Application 에서
repository. 에 미리 작성된 jpa코드 (메소드)를 갖다쓸수있다

Course course1 = new Course ("웹개발","남병관");    //클래스만들기
repository.save(course1);                         //repo 저장

List<course> courseList = repository.findAll();   // list 불러오기
for (int i=0; i<courseList.size(); i++) {         // 하나하나 찍어보기    
      Course c = courseList.get(i);
      System.out.println(c.getTitle());
      System.out.println(c.getTutor());
}

//데이터 하나조회
Course course = repository.findById(1L).orElseThrow(
        () -> new NullPointerException("아이디가 존재하지 않습니다.")
);        

1L (1번 Long타입 아이디를 찾는다). 만약없으면-> "아이디존재X" 띄우기

profile
하루하루의 기록, 그리고 성장

1개의 댓글

comment-user-thumbnail
2021년 11월 8일

spring.jpa.show-sql=true
스프링이 jpa로 작동할때 sql을 보여줘!
src>main>resources>application.properties 에 붙이기

답글 달기