
κ°λ¨ν 리ν©ν λ§ νλκΈμ μ¨λ³΄λ €κ΅¬ νλ€.
μ€λμ κ°μ λ£κΈ°μ μ μ½λλΆν° λ¨Όμ μ§λ³΄κ³ μΆμ΄μ..^^
μ°μ 리ν©ν λ§ μ 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 μ΄λ κ² μΈ κ΅¬μ‘°λ‘ λλκ² μ½λλ₯Ό
리ν©ν λ§ ν΄λ³Όκ±°λ€.μ κ·Όλ°,, μ μ΄μ ν μ΄λΈλΆν° μλ‘ λ§λ€μ΄μΌ ν΄μ ꡬνμ λ€μ ν΄μΌλ κ±° κ°λ€..γ γ γ