📚 코드로 배우는 스프링 부트 웹 프로젝트
ORM은 객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술
패러다임 입장에서 객체지향 패러다임을 관계형 패러다임으로 매핑
객체지향의 구조가 관계형 데이터베이스와 유사하다는 점에서 시작한다
DB에서는 Entity(개체, 데이터)인 반면, Java에서는 Data+Method(객체)라는 차이가 있을 뿐이다
결국, ORM은 객체지향과 관계형 사이의 변환 기법을 의미한다
테이블과 객체가 매핑되어 메소드로 데이터를 조회해 바로 객체에 담을 수 있음을 의미한다
User user = userRepository.findByUserId(String userId);
// application.properties
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:포트번호/DB명
spring.datasource.username=DB아이디
spring.datasource.password=DB비밀번호
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.show-sql=true
@Entity // 해당 클래스가 엔티티를 위한 클래스임을 선언하는 부분
@Table(name = "memo") // 엔티티 클래스를 어떤 테이블로 생성할 것인지 선언하는 부분
@ToString
@Getter // getter 메소드 생성
@Builder // 객체 생성 처리
@AllArgsConstructor // Builder 컴파일 에러 발생 방지
@NoArgsConstructor // Builder 컴파일 에러 발생 방지
public class Memo {
@Id // PK로 지정할 필드
@GeneratedValue(strategy = GenerationType.IDENTITY) // 자동생성(일련번호)
private Long mno;
}
@Column(length = 200, nullable = false) // 추가될 필드의 정보 저장
private String memoText;
// interface
public interface MemoRepository extends JpaRepository<Memo, Long> {
} // <entity type, @id type>