스프링 다시 복습한다고 해서 정리하고 듣기로 했다.
스프링에서 데이터베이스를 쓰는 방법
간단한 기본 개념
- 순수 jdbc : Java Database Connectivity
자바에서 사용할 수 있도록 만들어졌기 때문에 스프링에 완전 적합하지는 않다.
- Spring JDBC
독자성을 줄이고 스프링에 맞게 수정
- SQL Mapper와 ORM
SQL Mapper
개발자가 sql을 직접 작성해서 연결해줘야한다.
DBMS에 종속적이고, 비슷한 쿼리를 작성하더라도 작성할때마다 매핑을 해줘야하는 번거로움이 있다.
ORM은 무엇인가
Object-Relational Mapping의 약자이며, 객체와 관계형 데이터베이스
장점 : DBMS에 종속적이지 않다
단점 : JPA가 복잡하기 때문에 학습하기 어렵다(돈을 주고 배워야한다.)
JPA만으로는 개발의 한계가 있기 때문에 마이바티스도 같이 사용한다.
-H2 데이터베이스
자바로 작성된 관계형 데이터베이스이다. 테스트하기에 유용하기 때문에 사용한다.
필수는 아니다.
MyBatis
데이터베이스 쿼리와 객체 즉 프로그래밍 언어 코드를 분리해서 생산성을 높이기 위해 사용한다.
유연성, 간결성, 성능, 다양한 DBMS 지원
자동으로 캐시 기능을 지원하기 때문에 빠르게 동작한다.
이렇게해서 설치하자
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 내용과 실습도 정리할 것이다.
'포스코x코딩온 KDT 8기 풀스택 과정 회고록' 카테고리의 다른 글
[포스코X코딩온 KDT 8기] 웹 풀스택 과정 108일차(23.11.13) 회고록 | 앞으로의 취업 컨설팅 계획 브리핑 및 취업 강의 (0) | 2023.11.14 |
---|---|
[포스코 코딩온 KDT 8기] 웹 풀스택 과정 102일(23.11.06)차 회고 및 bcrypt 암호화 사용하기 (0) | 2023.11.06 |
[포스코 코딩온 KDT 8기] 웹 풀스택 과정 73일(23.09.26)차 회고 | React-Router (1) | 2023.10.19 |
[포스코 코딩온 KDT 8기] 웹 풀스택 과정 리액트 개인 프로젝트 | Node.js와 React 연결하기 (1) | 2023.10.11 |
[포스코 코딩온 KDT 8기] 웹 풀스택 과정 76일(23.10.05)차 회고 | React - Redux (2) | 2023.10.05 |