🌱<μΈν”„λŸ° μ›Œλ°μ—… μŠ€ν„°λ”” 클럽 0κΈ°> BE - λ‚˜ν˜Όμž μ‹€μŠ΅(λ„μ„œκ΄€λ¦¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜)

AishaΒ·2024λ…„ 2μ›” 29일
post-thumbnail

κ°„λ‹¨νžˆ λ¦¬νŒ©ν† λ§ ν•˜λŠ”κΈ€μ„ 써보렀ꡬ ν•œλ‹€.
였늘자 κ°•μ˜ 듣기전에 μ½”λ“œλΆ€ν„° λ¨Όμ € 짜보고 μ‹Άμ–΄μ„œ..^^

μš°μ„  λ¦¬νŒ©ν† λ§ μ „ BookController ν΄λž˜μŠ€μ΄λ‹€.

package com.group.libraryapp.controller.book;

import com.group.libraryapp.dto.book.request.LoanBookRequest;
import com.group.libraryapp.dto.book.request.SaveBookRequest;
import com.group.libraryapp.dto.book.response.BookResponse;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class BookController {


    private JdbcTemplate jdbcTemplate;

    public BookController(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    //μ±… 등둝 API
    @PostMapping("/book")
    public void saveBook(@RequestBody SaveBookRequest request){
      String sql = "INSERT INTO book(name) VALUES(?)";
      jdbcTemplate.update(sql,request.getName());

    }

    //μ±… λŒ€μΆœ API
    @PostMapping("/book/loan")
    public void loanBook(@RequestBody LoanBookRequest request){
        String sql = "SELECT * FROM book WHERE name = ?";
        Boolean isBookNotExist = jdbcTemplate.query(sql, (rs, rowNum) -> 0,request.getBookName()).isEmpty();
        if(isBookNotExist){
            throw new IllegalArgumentException();
        }
        String readSql = "SELECT loan_user FROM book WHERE name = ?";

     List<BookResponse> loanUser = jdbcTemplate.query(readSql, (rs, rowNum) -> {
            String name = rs.getString("loan_user");
            return new BookResponse(name);
        },request.getBookName());


        if(loanUser.get(0).getName() == null){
            String insertSql = "UPDATE book SET loan_user = ? WHERE name = ?";
            jdbcTemplate.update(insertSql,request.getUserName(),request.getBookName());
        }else{
            System.out.println("이미 λŒ€μΆœν•œ μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆλ‹€.");
        }



    }


    //μ±… λ°˜λ‚© API
    @PutMapping("/book/return")
    public void returnBook(@RequestBody LoanBookRequest request){
        String sql = "SELECT * FROM book WHERE name = ?";
        Boolean isBookNotExist = jdbcTemplate.query(sql, (rs, rowNum) -> 0,request.getBookName()).isEmpty();
        if(isBookNotExist){
            throw new IllegalArgumentException();
        }


            String insertSql = "UPDATE book SET loan_user = ? WHERE name = ?";
            jdbcTemplate.update(insertSql,null,request.getBookName());



    }





}

이 μ½”λ“œμ—λŠ” ν¬λ‚˜ν° λ¬Έμ œκ°€ μžˆλ‹€. λ°”λ‘œλ°”λ‘œ,, λ ˆμ΄μ–΄λ“œ μ•„ν‚€ν…μ³λ‘œ κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜λ‹€. κ°•μ˜μ—μ„œ λ‚˜μ˜¨ 말이라 ν•œλ²ˆ μ¨λ΄€λŠ”λ°,, κ°„λ‹¨νžˆ λ§ν•˜λ©΄ μ½”λ“œκ°€ μ§€κΈˆ λ­‰νƒ±μ΄λ‘œ μ»¨νŠΈλ‘€λŸ¬μ— λ“€μ–΄μžˆμ–΄μ„œ 이럴 κ±°λ©΄ νšŒμ‚¬ λͺ»λ“€μ–΄κ°„λ‹€κ³  보면 λœλ‹€.
κ·Έλž˜μ„œ 이 컨트둀러 μ•ˆμ— μžˆλŠ” μ½”λ“œλ₯Ό λΆ„λ¦¬ν•΄μ„œ,
controller-service-repository μ΄λ ‡κ²Œ μ„Έ ꡬ쑰둜 λ‚˜λ‰˜κ²Œ μ½”λ“œλ₯Ό
λ¦¬νŒ©ν† λ§ ν•΄λ³Όκ±°λ‹€.음 근데,, μ• μ΄ˆμ— ν…Œμ΄λΈ”λΆ€ν„° μƒˆλ‘œ λ§Œλ“€μ–΄μ•Ό ν•΄μ„œ κ΅¬ν˜„μ„ λ‹€μ‹œ 해야될거 κ°™λ‹€..γ…‹γ…Žγ…‹

profile
μ΄κ²ƒμ €κ²ƒλ§Œλ“€μ–΄λ³΄κ³ μ‹Άμ–΄μš”!

0개의 λŒ“κΈ€