1. JDBC : Java에서 DB에 접근하기 위해 제공되는 api
- 중복 코드 발생 가능
- 커넥션 관리가 필요 (connection을 연결해 놓은 객체들을 pool에 저장해두었더가 WAS가 실행되면서 클라이언트의 요청이 오면 connection을 빌려주고 처리가 끝나면 다시 connection을 반납받아 pool에 저장)
2. SQL 매퍼: 개발자가 직접 SQL문을 작성해 데이터베이스의 데이터를 다루는 Persistence Framework (객체와 테이블 간의 관계를 직접 매핑 x , SQL문을 실행해 쿼리 수행 결과를 어떤 객체에 매핑할지 바인딩 하는 방법 o) ex) MyBatis
Mapper 방식을 사용하면 중복되는 코드를 줄일 수 있지만 JDBC와는 다르게 DBMS에 따라서 문법을 달리해줘야해 DBMS에 종속적이다.
- DBMS 변경 시 SQL문 재사용이 어려움
- 객체 <--> 테이블 패러다임 불일치 발생
- DBMS 별로 SQL 문법 다름
- EX) Spring JDBC
MyBatis
3. ORM : 객체와 관계형 데이터베이스를 매핑한다는 뜻
- 객체간의 관계를 바탕으로 SQL을 자동으로 생성하고 메서드를 통해 조작한다.
-- ex) SELECT * FROM user --> userRepository.findAll();
** JPA : 자바 진영의 ORM 기술 표준
(수정 중)