영속성(Persistance)

프로그램이 종료되어도 데이터들이 사라지지 않고 특정 공간에 계속 저장되는 것

⇒ Java에선 기본적으로 JDBC API를 통해 제공

⇒ JDBC의 단점 : 직접 Java와 DB를 매핑해줘야 하는 복잡함과 번거로움이 존재

⇒ 영속성 프레임워크 (Persistance Framework)를 통해 직접 JDBC를 프로그래밍 하지 않게 도와줌

⇒ ex) SQL Mapper, ORM 등

ORM**(Object Relational Mapping)**

[데이터베이스] ORM이란? (Node.js ORM Lib Sequelize 소개) - 하나몬

// Entity => Dto 변환
    // 1. Getter, Setter 사용
    public static BoardDto toBoardDto1(BoardEntity boardEntity) {

        BoardDto boardDto = new BoardDto();

        boardDto.setId(boardEntity.getId());
        boardDto.setTitle(boardEntity.getTitle());
        boardDto.setContent(boardEntity.getContent());
        boardDto.setWriter(boardEntity.getWriter());
        boardDto.setHit(boardEntity.getHit());
        boardDto.setBoardPw(boardEntity.getBoardPw());
        boardDto.setCreateTime(boardEntity.getCreateTime());
        boardDto.setUpdateTime(boardEntity.getUpdateTime());

        return boardDto;
    }

    // 2. @Bulider 사용 (빌더패턴)
    public static BoardDto toBoardDto2(BoardEntity boardEntity) {

        return BoardDto.builder()  // 객체생성 불필요
                .id(boardEntity.getId())
                .title(boardEntity.getTitle())
                .content(boardEntity.getContent())
                .writer(boardEntity.getWriter())
                .hit(boardEntity.getHit())
                .boardPw(boardEntity.getBoardPw())
                .createTime(boardEntity.getCreateTime())
                .updateTime(boardEntity.getUpdateTime())
                .build();
    }

JPA (Java Persistence API)

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정

Spring JPA (1) - JPA 기본 & JPA 프로젝트 생성