WebServer/Spring Boot
[Spring/JPA] Spring Data JPA란?
gangintheremark
2023. 11. 22. 13:26
728x90
JPA(Java Persistence API)는 자바를 이용하여 데이터베이스와의 상호 작용을 쉽게 만들어주는 프로그래밍 인터페이스이다. JPA를 사용하면 객체와 관계형 데이터베이스 간의 매핑을 쉽게 처리할 수 있으며, 데이터베이스에서 객체를 저장하고 검색하는 등의 작업을 보다 간편하게 수행할 수 있다.
💡 JPA는 JAVA에서 ORM(Object-Relational Mapping)기술 표준으로 사용하는 인터페이스 모음
JPA를 사용하는 이유
- 객체 지향적인 방식으로 데이터를 다루면서 데이터베이스를 효과적으로 활용
- SQL 쿼리를 직접 작성하는 대신 JPA가 데이터베이스 간의 매핑을 처리 ➜ 개발자가 비즈니스 로직을 구성하는데만 집중 가능
- RDB를 변경하더라도 SQL에 의존적이지 않기 때문에 변경 용이
MyBatis와 JPA의 차이
<mapper namespace="member">
<select id="findAllByName" parameterType="string" resultType="UserDTO">
select * from user
where name = #{name}
</select>
</mapper>
MyBatis는 Mapper에 SQL 쿼리문을 작성하고 SqlSessionTemplate
을 통해 호출해서 해당 쿼리를 실행하여 객체와 매핑을 진행하였다. JPA와 다르게 쿼리를 모두 작성해야한다.
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Long>, TestRepositoryCustom {
public List<UserEntity> findAllByName(String name);
}
Spring Data JAP를 사용하면 대다수의 것들이 자동설정되기 때문에 편리하게 사용할 수 있고, 복잡한 네이티브 쿼리를 사용하는게 아니라면 CRUD SQL을 직접 작성할 필요가 없다.
728x90