- H2 DB
: 자바로 작성된 관계형 데이터베이스 관리 시스템 / 서버 실행시 자동 설치
자바 애플리케이션에 임베드(장착)하거나 클라이언트-서버 모드에서 구동할 수 있음
인메모리 데이터 베이스 : 킬 때마다 똑같은 상태로 셋팅 가능
DB는 종료되면 데이터가 다 날아감 / 휘발성
메모리에 데이터를 저장
설치가 필요없음
방언 설정이 가능 : 무슨 데이터 모드(Mysql인지 다른 것인지)로 실행할 것인지 설정이 가능함
연결하는 방법 참조
2. application-dev.yml에 설정하기
server: servlet: encoding: charset: utf-8 force: true port: 8080 spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test;MODE=MySQL username: sa password: h2: console: enabled: true # 웹에서 콘솔에 접근할 수 있게 활성화 jpa: hibernate: ddl-auto: create # 서버 실행 시 테이블 생성
3. JPA(Java Persistence API)
API : Application Programming Interface
- Java를 사용하여 DB와의 관계형 데이터를 영구적으로 저장하고 검색하기 위한 API
- Java의 객체를 관계형 DB에 매핑하는 기술을 제공
객체와 DB 간의 매핑 작업을 간소화
- SQL 쿼리를 직접 작성하는 대신 Java 객체를 사용하여 DB와 상호 작용 가능
- 다양한 인터페이스와 메서드를 제공
- 내가 만든 오브젝트로 바로 받을 수 있음 // 굉장히 편함
ex) 서버(자바) - - - - - - - 디비
셀렉트 요청 : ResultSet 테이블 형태 데이터(rs)를 응답 받음
커서를 내리면서 파싱 → 자바 오브젝트에 넣음 // 이 과정이 항상 필요함
4. User에 제약조건 설정하기
- @Colum을 사용하여 제약 조건 설정하기
- unique=true : 유일해야함, 중복 안됨
- length = 60 : 최대 길이 60자
- nullable = false : 비어놓는것 안됨
package shop.mtcoding.blog.user; import lombok.Data; import jakarta.persistence.*; @Data // getter, setter, toString @Entity // @Table(name = "user_tb") public class User { // user DB값 담기 @Id // 프라이머리 키 @GeneratedValue(strategy = GenerationType.IDENTITY) // auto increament private int id; @Column(unique=true) private String username; @Column(length = 60, nullable = false) // 길이 조정, 널 불가 private String password; private String email; }
5. JPA의 Hibernate
- 스프링이 실행될 때 전체 스캔 → 엔티티를 검색 → 있는 전체 클래스 찾기
→ 테이블 생성 쿼리 생성하고 실행
- 개발 모드에서만 사용 : 리플렉션
7. 가독성 좋게 표기법 설정하기
- application-dev.yml에 변경하기
server: servlet: encoding: charset: utf-8 force: true port: 8080 spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test;MODE=MySQL username: sa password: h2: console: enabled: true # 웹에서 콘솔에 접근할 수 있게 활성화 jpa: hibernate: ddl-auto: create # 서버 실행 시 테이블 생성 show-sql: true properties: hibernate: format_sql: true # 표기방법 바꾸기
Share article