Java

[JAVA] DB와 관련된 (순수 JDBC, JDBC 템플릿, JPA)

씬프 2021. 4. 6. 10:09
반응형

JAVA를 통해 앱 개발을 하면 DB를 참조해야 하는 상황이 있다.

이때, Plain JDBC부터 스프링 JPA까지 다양한 방법이 있다.

 

Plain JDBC

JAVA 기반 앱에서 JDBC API, JDBC Driver를 통해 DB에 접근한다.

1) JDBC Driver를 로드하고

 DriverManager를 통해 JDBC Driver 호출, DB와 통신을 담당하는 클래스

2) DB에 연결하고 SQL문으로 DB를 사용

 Statement (SQL문 전달 역할), ResultSet (쿼리문 실행 결과 저장, 한 행씩 호출 가능),

 PreparedStatement(Statement 객체 기능 향상, 코드 안전성, 가독성 높임, 매개변수 전달에 용이함.)

3) DB 연결 종료

 close()를 통해, 연결, 연결상태, 결과값 저장한 객체들을 종료시켜준다.

 

Spring JDBC Template

내부적으로 JDBC API를 사용하지만, 

JDBC의 문제점 (쿼리 실행 전후로 많은 코드, DB로직에서 예외처리문 사용, 트랜잭션처리, 반복되는 코드로 시간 낭비 등)을 해결하기 위해 Spring에서 제공하는 Class

JDBC Template에서 연결 생성, 연결, 결과값 객체, 예외처리, 트랜잭션처리를 다 해주고,

개발자는 쿼리문만 작성하거나 값을 전달하는 코드만 작성하게 됨.

 

JPA (Java Persistence API)

ORM (Object-Relational Mapping) 방식으로 객체와 RDBS Table을 매핑시켜서 사용한다.

SQL문도 JPA가 작성해주기 때문에, 객체 중심으로 설계한다. (자세한 내용은 JPA만 따로 다룰 것임.)

 

추가로 Spring Data JPA도 있는데, 훨씬 간단하게 JPA를 사용하게 되지만 JPA를 알고 사용하는 것이 좋다고 함.

'Java' 카테고리의 다른 글

[Java] 좋은 객체지향 프로그래밍 5원칙 (SOLID)  (0) 2021.04.07
[JAVA] 객체 지향 프로그래밍(OOP)의 특징  (0) 2021.04.06
[JAVA] 접근 제어자  (0) 2021.04.01
Lambda  (0) 2021.03.30
Maven, Gradle  (0) 2021.03.30