Spring

[스프링] JPA - CRUD

웨일파도 2023. 7. 7. 18:18
반응형

data.sql

insert into member(`id`, `name`, `email`, `create_at`, `update_at`) values (1, '홍길동', 'mars@thejoeun.com', now(), now());
insert into member(`id`, `name`, `email`, `create_at`, `update_at`) values (2, '박남순', 'namsun@thejoeun.com', now(), now());
insert into member(`id`, `name`, `email`, `create_at`, `update_at`) values (3, '이순신', 'leesunsin@thejoeun.com', now(), now());
insert into member(`id`, `name`, `email`, `create_at`, `update_at`) values (4, '강감찬', 'kangkamchan@thejoeun.com', now(), now());
insert into member(`id`, `name`, `email`, `create_at`, `update_at`) values (5, '유관순', 'ryukwansun@thejoeun.com', now(), now());

 

// select all 문
        System.out.println("select all -----------------------------------------------------");
        List<Member> memberList = memberRepository.findAll(Sort.by(Sort.Direction.DESC, "id"));
        memberList.forEach(System.out::println);
더보기

select all -----------------------------------------------------
Hibernate: 
    select
        m1_0.id,
        m1_0.create_at,
        m1_0.email,
        m1_0.name,
        m1_0.update_at 
    from
        member m1_0 
    order by
        m1_0.id desc
Member(id=5, name=유관순, email=ryukwansun@thejoeun.com, createAt=2023-07-07T18:15:02.684713, updateAt=2023-07-07T18:15:02.684713)
Member(id=4, name=강감찬, email=kangkamchan@thejoeun.com, createAt=2023-07-07T18:15:02.684713, updateAt=2023-07-07T18:15:02.684713)
Member(id=3, name=이순신, email=leesunsin@thejoeun.com, createAt=2023-07-07T18:15:02.684713, updateAt=2023-07-07T18:15:02.684713)
Member(id=2, name=박남순, email=namsun@thejoeun.com, createAt=2023-07-07T18:15:02.683717, updateAt=2023-07-07T18:15:02.683717)
Member(id=1, name=홍길동, email=mars@thejoeun.com, createAt=2023-07-07T18:15:02.681721, updateAt=2023-07-07T18:15:02.681721)

 

// select where 문
        System.out.println("select where-----------------------------------------------------");
        List<Member> memberList2 = memberRepository.findAllById(Lists.newArrayList(1L,3L));
        memberList2.forEach(System.out::println);
더보기

select where-----------------------------------------------------
Hibernate: 
    select
        m1_0.id,
        m1_0.create_at,
        m1_0.email,
        m1_0.name,
        m1_0.update_at 
    from
        member m1_0 
    where
        m1_0.id in (?,?)
Member(id=1, name=홍길동, email=mars@thejoeun.com, createAt=2023-07-07T18:15:02.681721, updateAt=2023-07-07T18:15:02.681721)

 

 // update 문
        System.out.println("update -----------------------------------------------------");
        Member member1 = new Member(1L,"홍길동","이메일 주소", LocalDateTime.now(),LocalDateTime.now());
        memberRepository.save(member1);
        // 1번을 가진 id 가 있다면 update, 없다면 create문 발생
        List<Member> memberList3 = memberRepository.findAll();
        memberList3.forEach(System.out::println);
더보기

update -----------------------------------------------------
Hibernate: 
    select
        m1_0.id,
        m1_0.create_at,
        m1_0.email,
        m1_0.name,
        m1_0.update_at 
    from
        member m1_0 
    where
        m1_0.id=?
Hibernate: 
    update
        member 
    set
        create_at=?,
        email=?,
        name=?,
        update_at=? 
    where
        id=?
Hibernate: 
    select
        m1_0.id,
        m1_0.create_at,
        m1_0.email,
        m1_0.name,
        m1_0.update_at 
    from
        member m1_0
Member(id=1, name=홍길동, email=이메일 주소, createAt=2023-07-07T18:15:04.095148, updateAt=2023-07-07T18:15:04.095148)
Member(id=2, name=박남순, email=namsun@thejoeun.com, createAt=2023-07-07T18:15:02.683717, updateAt=2023-07-07T18:15:02.683717)
Member(id=3, name=이순신, email=leesunsin@thejoeun.com, createAt=2023-07-07T18:15:02.684713, updateAt=2023-07-07T18:15:02.684713)
Member(id=4, name=강감찬, email=kangkamchan@thejoeun.com, createAt=2023-07-07T18:15:02.684713, updateAt=2023-07-07T18:15:02.684713)
Member(id=5, name=유관순, email=ryukwansun@thejoeun.com, createAt=2023-07-07T18:15:02.684713, updateAt=2023-07-07T18:15:02.684713)

 

// delete 문
        System.out.println("delete -----------------------------------------------------");
//        memberRepository.deleteAll();  // delete 한개씩 처리 
        memberRepository.deleteAllInBatch(); // delete 한번에 처리

        List<Member> memberList4 = memberRepository.findAll();
        memberList4.forEach(System.out::println);
더보기

delete -----------------------------------------------------
Hibernate: 
    delete 
    from
        member
Hibernate: 
    select
        m1_0.id,
        m1_0.create_at,
        m1_0.email,
        m1_0.name,
        m1_0.update_at 
    from
        member m1_0

반응형