Spring Data JPA는 JDBC보다 발전된 프레임워크로, JPA(Java Persistence API) 및 Hibernate와 같은 ORM(Object Relational Mapping) 프레임워크를 사용해 개발자의 작업을 단순화합니다. 이 강의에서는 Spring Data JPA를 사용해 SQL 작성 및 데이터베이스 상호작용의 복잡함을 제거하는 방법을 설명합니다.
pom.xml에 spring-boot-starter-data-jpa 의존성을 추가합니다.<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
@Entity와 @Table 애너테이션을 사용해 클래스와 테이블 간의 관계를 정의합니다.@Column 애너테이션을 사용합니다.@Id 및 @GeneratedValue 애너테이션을 사용해 설정합니다.@Entity
@Table(name = "contact_msg")
public class Contact {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer contactId;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;
// Getters and Setters
}
@Repository
public interface ContactRepository extends CrudRepository<Contact, Integer> {
// 기본 CRUD 작업을 제공
}
@EnableJpaRepositories와 @EntityScan 애너테이션을 사용하여 리포지토리 및 엔티티 클래스의 위치를 지정합니다.@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.easybytes.easyschool.repository")
@EntityScan(basePackages = "com.easybytes.easyschool.model")
public class EasySchoolApplication {
public static void main(String[] args) {
SpringApplication.run(EasySchoolApplication.class, args);
}
}
@Autowired를 통해 ContactRepository를 주입받고, 이를 사용해 데이터를 처리합니다.@Service
public class ContactService {
@Autowired
private ContactRepository contactRepository;
public void saveContact(Contact contact) {
contactRepository.save(contact); // 저장 또는 업데이트
}
}
public void saveOrUpdateContact(Contact contact) {
contactRepository.save(contact);
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
@Entity
@Table(name = "contact_msg")
public class Contact {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer contactId;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;
// Getters and Setters
}
@Repository
public interface ContactRepository extends CrudRepository<Contact, Integer> {
}
@Service
public class ContactService {
@Autowired
private ContactRepository contactRepository;
public void saveContact(Contact contact) {
contactRepository.save(contact);
}
}
@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.easybytes.easyschool.repository")
@EntityScan(basePackages = "com.easybytes.easyschool.model")
public class EasySchoolApplication {
public static void main(String[] args) {
SpringApplication.run(EasySchoolApplication.class, args);
}
}
@Entity, @Table 등 애너테이션으로 데이터베이스 테이블과 매핑.@EnableJpaRepositories와 @EntityScan으로 Spring Data JPA 구성.이 과정은 Spring Data JPA를 사용해 복잡한 SQL 작성 없이 데이터베이스 작업을 효율적으로 처리하는 방법을 제공합니다.