Persistence
란 영속성
으로 데이터를 생성한 프로그램이 종료되어도 삭제되지 않는 데이터의 특성이다.
메모리상 데이터를 JDBC, Persistence FramkeWork를 이용해서 데이터베이스에 저장해 영속성을 부여한다.
Persistence FrameWork
란 데이터베이스와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크
객체(Object)
와 SQL
을 매핑시켜주는 기술.
SQL문장으로 직접 데이터베이스의 데이터를 다룬다.
종류 : MyBatis
객체(Object)
와 관계형 데이터베이스
를 매핑시켜주는 기술로 데이터베이스의 테이블을 객체지향적으로 사용할 수 있다.
객체를 관계형 데이터베이스에 자동으로 영속화 해준다.
SQL쿼리가 아닌 메서드
를 통해 데이터를 조작할 수 있다.
종류 : JPA, Hibernate
JDBC
란 데이터베이스에 접근할 수 있도록 자바에서 제공하는 API
모든 자바의 데이터베이스 접근의 기본이다.
JDBC 내부의 쿼리를 통해 데이터베이스의 데이터를 읽거나 쓴다.
Driver
LoadConnection
객체 생성Statement
객체를 생성하여 질의 수행ResultSet
객체를 생성하여 결과 저장close
자세한 코드는 https://victorydntmd.tistory.com/145
JPA란 자바 ORM 기술에 대한 API 표준 명세서로, 자바에서 제공하는 API이다.
즉, ORM을 사용하기 위한 표준 인터페이스를 모아둔 것이다.
JPQL(Java Persistence Query Language)
Spring Data JPA는 JPA를 한 단계 더 추상화 한 인터페이스 제공.
Spring Data JPA는 Repository
를 통해 영속성 관리하고 JPA는 EntityManager
를 통해 영속성 관리를 한다.
메서드
이름을 분석해서 JPQL을 생성한다.(쿼리 메서드)Hibernate
는 JPA의 구현체 중 하나.
Hibernate 내부에서 JDBC API가 동작하여 개발자가 직접 SQL을 작성하지 않을 뿐 SQL을 사용하지 않는것은 아니다.
HQL(Hibernate Query Language)
라는 강력한 쿼리언어를 포함하고 있다.
객체지향적
으로써 상속, 다형성 등의 객체지향 강점을 누릴 수 있다.객체로 반환
한다.향상된 기능 제공
.MyBatis
는 개발자가 직접 지정한 SQL쿼리를 JDBC에 매핑시켜주는 SQL Mapper
이다.
기존 JDBC를 처리할 때는 Connection과 같은 복잡한 설정을 해주어야 했지만 SQL Mapper는 자바 객체를 실제 SQL문에 연결함으로써 빠른 개발과 테스트 환경을 제공한다.
https://gmlwjd9405.github.io/2018/12/25/difference-jdbc-jpa-mybatis.html
https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/