JDBC

siyeon kim·2023년 4월 24일
post-thumbnail

JDBC(Java Database Connectivity)

자바 프로그래임이 데이터베이스와 연결되어 데이터를 주고 받을 수 있게 해주는 프로그래밍 인터페이스

역할

통역자의 역할

  • 응용프로그램과 DBMS 간의 통신을 중간에서 번역해주는 역할

DB에 접근 할 수 있도록 Java에서 제공하는 API

JDBC 드라이버 매니저가 제품에 따른 드라이버 생성하여 API에 맞게 동작할 수 있게 처리

Spring JDBC

JDBC에서 DriveManager가 하는 일들을 JDBCTemplate에게 맡김

개발자는 메서드에 쿼리를 직접 매핑

핵심적으로 해야 할 작업만 해주면 나머지는 Framwork가 알아서 처리

  • datasource 설정
  • sql문 작성
  • 결과 처리

JDBC Template

spring JDBC 접근법,

내부로는 Plain JDBC API를 사용하지만 문제점들을 제거한 형태의 Spring에서 제공하는 Class

쿼리를 직접 작성하는 방법을 제공함으로써 많은 작업과 시간 절약 → SQL Mapper중 하나

SQL Mapper

SQL 문장으로 직접 데이터베이스 데이터를 다룸

java 코드와 분리되어 있어 유지보수가 편함

단점 : CRUD 메소드를 직접 다 작성 해야함

ex) myBatis, Spring JDBC

SQL Mapper ↔ ORM(Object-Relational Mapping)

ORM(Object-Relational-Mapping)

객체와 관계형데이터베이스의 데이터를 자동으로 매핑

Class와 DB 테이블을 매핑한다는 뜻

직접 쿼리를 작성하지 않고도 객체가 DB에 접근할 수 있음

OCP(Open-Cloed Principle, 개방-패쇄 원칙)

객체지향 프로그래밍의 4가지 특징과 5가지 원칙 중 하나의 원칙

확장에는 열려 있고 변경에는 폐쇄되어야 한다는 원칙

개방폐쇄원칙의 아주 좋은 예는 JDBC → 데이터베이스가 오라클에서 Mysql로 바뀌더라도 Connection외 변경할 부분이 없기때문

JPA(Java Persistent API)

→ Persistent(영속성) : 데이터가 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성

JAVA진영에서 ORM 기술표준으로 사용하는 인터페이스 모음

자바어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스

인터페이스임으로 실제 구현된것이 아님

Hibernate, OpenJPA 등이 JPA를 구현한다

profile
Kt is 개발자 ing~

0개의 댓글