커피와 개발자

DataBase 연동 (MariaDB, HikariCP) 본문

프로젝트/Spring Boot

DataBase 연동 (MariaDB, HikariCP)

광박이 2022. 10. 11. 14:41
728x90

JDBC(Java DataBase Connectivity)

JDBC(Java DataBase Connectivity)는 자바 프로그램이 DBMS에 일관된 방식으로 접근할 수 있도록 API를 제공하는 자바 클래스들의 모임입니다. 즉 데이터베이스에 연결 및 작업을 하기 위한 JAVA의 표준 인터페이스입니다.

JDBC의 특징 :

  • JDBC는 함수 호출용 SQL 인터페이스입니다.
  • JDBC는 ANI SQL-92 표준을 지원합니다.
  • JDBC는 공통된 SQL 인터페이스를 바탕으로 합니다.
  • JDBC는 익히고 사용하기 쉽습니다.

MairaDB :

MariaDB는 MariaDB사가 제작한 오픈소스 *RDMBS소프트웨어이며, MySQL코드 기반으로 한 오픈소스 RDBMS입니다.


DBMS란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어입니다. 관계형 데이터베이스(RDMBS)에서는 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용합니다. 이러한 테이블 간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능하다는 게 RDBMS의 가장 큰 특징입니다.


JDBC 연결

로컬 PC에 MariaDB가 설치되어 있다라는 가정하에 설정합니다.

pom.xml - dependency 적용 :

pom.xml 파일에 mariadb-java-client dependency 를 적용합니다.

 

 

application.yml - Database 설정 코드 추가 :

spring:
  ### database
  datasource:
    hikari:
      # DB 드라이브
      driver-class-name: org.mariadb.jdbc.Driver
      # DB 주소 및 데이터베이스명
      jdbc-url: jdbc:mariadb://localhost:3306/데이터베이스명?characterEncoding=UTF-8&serverTimezone=UTC
      # MariaDB 접속 계정
      username: 계정
      # MariaDB 접속 비밀번호
      password: 비밀번호

SpringBoot와 JPA

JPA(Java Persistence API)는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSE, JavaEE를 위한 영속성(persistence) 관리와 ORM을 위한 표준 기술입니다.
JPA는 ORM 표준 기술로 Hibernate, OpenJPA, EclipseLink, TopLink Essentials과 같은 구현체가 있고 이에 표준 인터페이스가 바로 JPA입니다.

JPA의 장점 :

  • 객체지향적으로 데이터를 관리할 수 있기 때문에 비즈니스 로직에 집중 할 수 있으며, 객체지향 개발이 가능하다.
  • 테이블 생성, 변경, 관리가 쉽다. (JPA를 잘 이해하고 있는 경우)
  • 로직을 쿼리에 집중하기 보다는 객체 자체에 집중할 수 있다.
  • 빠른 개발이 가능하다.

JPA의 단점 :

  • 어렵다. 장점을 더 극대화 하기 위해서 알아야 할게 많다.
  • 잘 이해하고 사용하지 않으면 데이터 손실이 있을 수 있다. (persistence context)
  • 성능상 문제가 있을 수 있다.(이 문제 또한 잘 이해해야 해결이 가능하다.)

MyBatis, iBatis는 ORM이 아니며, SQL Mapper입니다. ORM은 객체를 매핑하는 것이고, SQL Mapper는 쿼리를 매핑하는 것이다.


DatabaseConfiguration 클래스 생성 :

configuration 패키지에 DatabaseConfiguration.java 설정 파일을 생성합니다.

 

 

SpringbootApplication.java에서 exclude했던 DataSourceAutoConfiguration설정을 제거해줍니다.

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

728x90

'프로젝트 > Spring Boot' 카테고리의 다른 글

예외처리 (Exception Handling)  (0) 2022.10.11
Mybatis 적용  (0) 2022.10.11
Argument Resolver 설정  (0) 2022.10.11
jsonView 설정  (0) 2022.10.11
AOP(Aspect Oriented Programming) 설정  (0) 2022.10.11
Comments