[Spring] Spring์—์„œ์˜ CRUD

DEINGVELOPยท2022๋…„ 8์›” 16์ผ
0

Spring JPA๋ฅผ ํ™œ์šฉํ•œ CRUD

Create

๐Ÿ‘‰๐Ÿป Repository์˜save() ์ด์šฉ

repository.save(new Post("์ฒ ์ˆ˜์˜ TIL", "๊น€์ฒ ์ˆ˜", "์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ : REST API"))

Read

๐Ÿ‘‰๐Ÿป Repository์˜ findAll() ์ด์šฉ

// ๋ฐ์ดํ„ฐ ์ „๋ถ€ ์กฐํšŒํ•˜๊ธฐ
List<Post> postList = repository.findAll();
for (int i=0; i<postList.size(); i++) {
    Post post = postList.get(i);
    System.out.println(post.getId());
    System.out.println(post.getTitle());
	System.out.println(post.getAuthor());
   	System.out.println(post.getContent());
}

// ๋ฐ์ดํ„ฐ ํ•˜๋‚˜ ์กฐํšŒํ•˜๊ธฐ
Post post = repository.findById(1L).orElseThrow(
        () -> new IllegalArgumentException("ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.")
);

Update

๐Ÿ‘‰๐Ÿป Repository์˜ findAll()๊ณผ Service์˜ update() ์ด์šฉ

@Bean
public CommandLineRunner demo(PostRepository postRepository, PostService postService) {
    return (args) -> {
        postRepository.save(new Post("ํ”„๋ก ํŠธ์—”๋“œ์˜ ๊ฝƒ, ๋ฆฌ์•กํŠธ", "์ž„๋ฏผ์˜"));

        System.out.println("๋ฐ์ดํ„ฐ ์ธ์‡„");
        List<Post> postList = postRepository.findAll();
        for (int i=0; i<postList.size(); i++) {
            Post post = postList.get(i);
            System.out.println(post.getId());
            System.out.println(post.getTitle());
            System.out.println(post.getAuthor());
        }

        Post new_post = new Post("์›น๊ฐœ๋ฐœ์˜ ๋ด„, Spring", "์ž„๋ฏผ์˜");
        postService.update(1L, new_post);
        postList = postRepository.findAll();
        for (int i=0; i<posstList.size(); i++) {
            Post post = postList.get(i);
            System.out.println(post.getId());
            System.out.println(post.getTitle());
            System.out.println(post.getAuthor());
        }
    };
}

๐Ÿ’ก Tip!
์‚ฌ์‹ค ์ง€๊ธˆ Update ๊ธฐ๋Šฅ๋งŒ Service๋ฅผ ์ด์šฉํ•œ ๊ฒƒ ๊ฐ™์•„ ๋ณด์ด์ง€๋งŒ, repository์˜ ๋ฉ”์†Œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ณต์žกํ•œ ์ž‘์—…๋“ค์€ ์›ฌ๋งŒํ•˜๋ฉด Service์— ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด ๊น”๋”ํ•˜๋‹ค.
์ฆ‰, ์œ„์—์„œ ์ •๋ฆฌํ•œ ๊ฒƒ์ฒ˜๋Ÿผ
Controller์—๋Š” ํ”„๋ก ํŠธ์™€ ์†Œํ†ตํ•ด์•ผ ํ•˜๋Š” ํ•„์ˆ˜ ๋ถ€๋ถ„๋“ค๋งŒ,
Service์—๋Š” ๊ทธ ์™ธ,
Repository์—๋Š” DB์™€ ์†Œํ†ตํ•ด์•ผ ํ•˜๋Š” ํ•„์ˆ˜ ๋ถ€๋ถ„๋“ค๋งŒ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ
์ด ๊น”๋”ํ•˜๊ณ  ๋ณด๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ผ๊ณ  ํ•œ๋‹ค.


Delete

๐Ÿ‘‰๐Ÿป Repository์˜ findAll()๊ณผ deleteAll() ์ด์šฉ

@Bean
public CommandLineRunner demo(PostRepository postRepository, PostService postService) {
    return (args) -> {
        postRepository.save(new Post("ํ”„๋ก ํŠธ์—”๋“œ์˜ ๊ฝƒ, ๋ฆฌ์•กํŠธ", "์ž„๋ฏผ์˜"));

        System.out.println("๋ฐ์ดํ„ฐ ์ธ์‡„");
        List<Post> postList = postRepository.findAll();
        for (int i=0; i<postList.size(); i++) {
            Post post = postList.get(i);
            System.out.println(post.getId());
            System.out.println(post.getTitle());
            System.out.println(post.getTutor());
        }

        Post new_post = new Post("์›น๊ฐœ๋ฐœ์˜ ๋ด„, Spring", "์ž„๋ฏผ์˜");
        postService.update(1L, new_post);
        postList = postRepository.findAll();
        for (int i=0; i<postList.size(); i++) {
            Post post = postList.get(i);
            System.out.println(post.getId());
            System.out.println(post.getTitle());
            System.out.println(post.getTutor());
        }

        postRepository.deleteAll();
    };
}

0๊ฐœ์˜ ๋Œ“๊ธ€