BackEnd/Spring Boot

JDBC란?

Raconer 2023. 4. 15. 17:24
728x90

JDBC란?

Java Database Connectivity의 약자이다. Java에서 DB에 접속할 수 있도록 하는 API이다.

JDBC는 Database에서 쿼리를 실행하거나 업데이트하는 방법을 제공한다.

패키지는 Java.sql와 Javax.sql에 있다.

JVM의 시스템과 DB 시스템을 연결하고 통신하기 위한 JAVA의 표준 스펙

Java.sql와 Javax.sql차이

Java.sql

JavaTM 프로그래밍 언어를 사용하여 데이터 소스에 저장된 데이터에 접근하고 처리하기 위한 API를 제공합니다. 이 API에는 다양한 드라이버를 동적으로 설치하여 다른 데이터 소스에 접근할 수 있는 프레임 워크가 포함되어 있습니다. JDBCTM API는 주로 SQL문을 데이터베이스에 전달하는데 적합하지만 테이블 형식의 모든 데이터 소스에서 데이터를 읽고 쓸 수 있습니다.

Javax.sql

JavaTM 프로그래밍 언어에서 서버측 데이터 소스 접근 및 처리를 위한 AP를 제공합니다. 이 패키지는 Java.sql 패키지를 보완하며 버전 1.4 release부터 Java SETM에 포함되어 있습니다.

ODBC와 차이

ODBC는 Open Database Connectivity 의 약자이다. ODBC는 모든 응용 프로그램에서 모든 데이터베이스 시스템과 통신하는 데 사용할 수 있는 개방형 인터페이스이다. 즉, JDBC가 java만 지원하는 것과 다르게 ODBC는 언어와 독립적이다.

JDBC 흐름

Java Program -> JVM -> Database Driver -> DB

DB -> Database Driver -> JVM -> Java Program

JVM

Java Virtual Machine의 줄임말이며 Java Byte Code를 OS에 맞게 해석해 주는 역할을 합니다.

JDBC실행이 JVM에 속합니다.

Ibatis 란?

JDBC를 보다 효율적으로 사용하기 위해 만들어진 프레임 워크로서 DAO를 분리 해서 사용할 수 있다.

Mybatis 란?

객체 지향 언어인 Java의 관계형 Database 프로그래밍을 보다 쉽게 도와주는 프레임 워크 이다.

Java에서는 관계형 Dabase 프로그래밍을 하기 위해 JDBC를 제공하는데 JDBC를 보다 편하게 사용하기 위해 Mybatis를 개발하였다.

특징

  1. SQL문이 코드로부터 완전 부리
    • 기존에는 DAO파일에 모든 SQL문을 작성했지만 Mybatis에서는 Mapper파일에 SQL 코드를 입력해 놓고 DAO파일에서 필요할 때마다 가져와서 사용할 수 있다.
  2. 생산성
    • 코드가 짧아진다.
  3. 유지 보수성 향상
    • Mapper파일에만 SQL 코드를 입력하고 나중에 SQL코드를 변경할때 ㅣ이곳에서 유지 보수만 하면, DAO에서는 아무런 영향을 받지 않는다 왜냐하면 DAO에서는 Mapper파일에서 작성된 SQL코드를 갖다 쓰기만 하기 때문이다.

Ibatis와 Mybatis 차이

Ibatis 버전이 변경되면서 Mybatis로 변경이 되었습니다. Apache Project팀에서 google Code 팀으로 이동하면서 명칭이 변경됐다. JDK 1.5 이상부터 Mybatis를 사용하며 ibatis(com.ibatis.*) -> Mybatis( org.apache.ibatis.*)로 변경했다.

사용 용어와 명령어가 간단하게 변경되었다.

ex) #var# -> #{var}, ->

출처

[Java.sql와 Javax.sql 차이] : https://stackoverrun.com/ko/q/4964789

[JDBC란] : https://sjh836.tistory.com/147

[JDBC 흐름] : https://m.blog.naver.com/PostView.nhn?blogId=blurzone&logNo=60017447784&proxyReferer=https:%2F%2Fwww.google.com%2F

[Mybatis란?] : https://m.blog.naver.com/PostView.nhn?blogId=wwwkang8&logNo=220989381100&proxyReferer=https:%2F%2Fwww.google.com%2F

[Ibatis와 Mybatis 차이] : https://sdevstudy.tistory.com/18

728x90

'BackEnd > Spring Boot' 카테고리의 다른 글

json-simple 사용  (0) 2023.04.15
HikariCP란?  (0) 2023.04.15
Spring Boot 서버 구축[2]  (0) 2023.04.15
Spring Boot 서버 구축[1]  (0) 2023.04.15
Spring Boot란?  (0) 2023.04.15