스프링 다시 복습한다고 해서 정리하고 듣기로 했다.


 

스프링에서 데이터베이스를 쓰는 방법

 

간단한 기본 개념

- 순수 jdbc : Java Database Connectivity

자바에서 사용할 수 있도록 만들어졌기 때문에 스프링에 완전 적합하지는 않다.

단점: 반복적이고 지루한 코드 작성이 필요하며, SQL 예외 처리, 리소스 관리(연결, , 결과 집합 닫기 등) 등의 복잡한 작업을 직접 처리
사용은 하지 않을 것임

 

- Spring JDBC

독자성을 줄이고 스프링에 맞게 수정

 

- SQL Mapper와 ORM

SQL Mapper

개발자가 sql을 직접 작성해서 연결해줘야한다.

DBMS에 종속적이고, 비슷한 쿼리를 작성하더라도 작성할때마다 매핑을 해줘야하는 번거로움이 있다.

 

ORM은 무엇인가

Object-Relational Mapping의 약자이며, 객체와 관계형 데이터베이스 

장점 : DBMS에 종속적이지 않다

단점 : JPA가 복잡하기 때문에 학습하기 어렵다(돈을 주고 배워야한다.)

 

JPA만으로는 개발의 한계가 있기 때문에 마이바티스도 같이 사용한다.

 

-H2 데이터베이스

자바로 작성된 관계형 데이터베이스이다. 테스트하기에 유용하기 때문에 사용한다.

필수는 아니다. 

 


MyBatis

데이터베이스 쿼리와 객체 즉 프로그래밍 언어 코드를 분리해서 생산성을 높이기 위해 사용한다.

유연성, 간결성, 성능, 다양한 DBMS 지원

자동으로 캐시 기능을 지원하기 때문에 빠르게 동작한다.

 

https://start.spring.io/

 

이렇게해서 설치하자

 

Lombok 자주사용하는 것

@Getter @Setter

@NoArgsConstructor : 기본 생성자를 만들어주는 친구

@AllArgsConstructor : 모든 필드값을 사용하는 생성자

@RequiredArgsConstructor : final이나 @NotNull인 필드값만 사용하는 생성자, final로 선언된 필드의 의존성이 자동 주입 ( 생성자 주입을 통해서 )

@Data : @Getter, @Setter, @RequiredArgsConstructor 외 더 있다.

 

dependencies에 

	implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
	runtimeOnly 'com.mysql:mysql-connector-j'

 

추가

 

# 구성 설저에 사용되는 파일

# 키-쌍 구조

application.yml(구조 파악하기 유용) < application.properties ( 우선순위가 높다. )

application.properties에 

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/kdt?useUnicode=yes&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Seoul
spring.datasource.username=root
spring.datasource.password=1234

mybatis.type-aliases-package=com.spring.boot.mapper
mybatis.mapper-locations=mybatis-mapper/*.xml

 

추가하기 저기서 username과 password는 자신의 데이터베이스 사용자로 바꾸어서 사용

 

Art 엔터 누르면 import를 쉽게 할 수 있다.

 

lombok으로 게터 세터를 사용했는데 저렇게 안나온다면 어떻게 해야하는가

인테리제이 내에서 프로그램을 깔아줘야한다.


위의 내용은 수업을 들으면서 정리한거라 조금 왔다갔다 했다. 일단 그냥 흐름을 정리해서 작성하고, MyBatis로 만든 CRUD와 검색기능 실습을 정리하고, 11월 8일 기준 오늘 수업한 jpa 내용과 실습도 정리할 것이다.

 

 

+ Recent posts