지금까지 SQL문을 통해 MySQL과 소통하였다.
하지만 문자열 SQL을 사용하는 것은 여러 문제가 있었다.
JPA는 데이터를 영구적으로 저장하고자 하는 > java 진영의 규칙 > 객체와 테이블을 연결한다
JPA는 규칙이기 때문에 > Hibernate가 이를 구현 > JDBC를 사용한다.
저장되고, 관리되어야 하는 데이터 > 여기서는 User 클래스
Id가 테이블에는 있었지만 클래스에는 없으므로 추가 @Id
SQL문에서 사용한 AUTO_INCREMENT > @GeneratedValue(strategy = GenerationType.IDENTITY)
JPA를 사용하기 위해서는 기본 생성자가 꼭! 필요하다
객체의 필드와 테이블의 필드 매핑
null이 들어갈 수 있는지, 길이 제한, DB에서의 column 이름 지정의 역할
name varchar(20); 로 만들어진 DB의 테이블 - 클래스의 name 필드를 서로 연결한다.
// @Column(nullable = false, length = 20, name="name")
@Column(nullable = false, length = 20) //같을 경우 생략 가능
private String name;
private Integer age;는 완전히 동일하기 때문에 @Column은 생략 가능
application.yml
ddl-auto : none
스프링을 시작할 때 매핑이 잘못되었을 때 어떻게 할 것인지 create, update, validate, none
jpa :
hibernate :
ddl-auto : none
properties:
hibernate:
show_sql: true
format_sql: true
dialect: org.hibernate.dialect.MySQL8Dialect
해당 글은 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]을 수강하며 작성한 글입니다.