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/