inblog logo
|
vosw1
    Spring

    DTO 만들기 - DB 연결하기

    Jan 30, 2024
    DTO 만들기 - DB 연결하기

    notion image
    1. H2 DB
    : 자바로 작성된 관계형 데이터베이스 관리 시스템 / 서버 실행시 자동 설치
    자바 애플리케이션에 임베드(장착)하거나 클라이언트-서버 모드에서 구동할 수 있음
    인메모리 데이터 베이스 : 킬 때마다 똑같은 상태로 셋팅 가능
    DB는 종료되면 데이터가 다 날아감 / 휘발성
    메모리에 데이터를 저장
    설치가 필요없음
    방언 설정이 가능 : 무슨 데이터 모드(Mysql인지 다른 것인지)로 실행할 것인지 설정이 가능함
     
    연결하는 방법 참조
    H2 Database Engine
    H2 is free SQL database written in Java
    H2 Database Engine
    https://www.h2database.com/html/main.html
     

    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 # 서버 실행 시 테이블 생성
    localhost
    http://localhost:8080/h2-console
    notion image
    notion image

    3. JPA(Java Persistence API)

    API : Application Programming Interface
    • Java를 사용하여 DB와의 관계형 데이터를 영구적으로 저장하고 검색하기 위한 API
    • Java의 객체를 관계형 DB에 매핑하는 기술을 제공
    객체와 DB 간의 매핑 작업을 간소화
    • SQL 쿼리를 직접 작성하는 대신 Java 객체를 사용하여 DB와 상호 작용 가능
    • 다양한 인터페이스와 메서드를 제공
    • 내가 만든 오브젝트로 바로 받을 수 있음 // 굉장히 편함
    ex) 서버(자바) - - - - - - - 디비
    셀렉트 요청 : ResultSet 테이블 형태 데이터(rs)를 응답 받음
    커서를 내리면서 파싱 → 자바 오브젝트에 넣음 // 이 과정이 항상 필요함
     
    notion image
     

    4. User에 제약조건 설정하기

    • @Colum을 사용하여 제약 조건 설정하기
    • unique=true : 유일해야함, 중복 안됨
    • length = 60 : 최대 길이 60자
    • nullable = false : 비어놓는것 안됨
    notion image
    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; }
    notion image
     

    5. JPA의 Hibernate

    • 스프링이 실행될 때 전체 스캔 → 엔티티를 검색 → 있는 전체 클래스 찾기
    → 테이블 생성 쿼리 생성하고 실행
    • 개발 모드에서만 사용 : 리플렉션
    notion image
     

    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 # 표기방법 바꾸기
    notion image
     
     
    Share article

    vosw1

    RSS·Powered by Inblog