[Spring] 도서 수정, 삭제
2024. 1. 1. 00:24ㆍ학부 강의/웹프로그래밍 (Spring)
0. 출처
아직 배우고 있는 중이라 부정확한 정보가 포함되어 있을 수 있습니다!
주의하세요!
올인원 스프링 프레임워크 참고.
1. 도서 정보 수정
결과적으로 다음과 같은 요청을 보낸다.
- 수정 요청 :
/library/book/admin/modifyBookForm?b_no=[수정할 책의 b_no]
가. 도서 정보 수정 화면
도서 정보를 수정하는 화면을 보여준다.
@Controller
@RequestMapping("/book/admin")
public class BookController {
...
@GetMapping("/modifyBookForm")
public String modifyBookForm(@RequestParam("b_no") int b_no, Model model) {
System.out.println("[BookController] bookDetail()");
String nextPage = "admin/book/modify_book_form";
BookVo bookVo = bookService.modifyBookForm(b_no);
model.addAttribute("bookVo", bookVo);
return nextPage;
}
}
BookController.modifyBookForm()
@Service
public class BookService {
...
public BookVo modifyBookForm(int b_no) {
System.out.println("[BookService] modifyBookForm()");
return bookDao.selectBook(b_no);
}
}
BookService.modifyBookForm()
나. 도서 정보 수정
“modify book” 버튼을 누르면 /library/book/admin/modify/BookConfirm
요청을 보낸다.
@Controller
@RequestMapping("/book/admin")
public class BookController {
...
@PostMapping("/modifyBookConfirm")
public String modifyBookConfirm(BookVo bookVo, @RequestParam("file") MultipartFile file) {
System.out.println("[BookController] modifyBookConfirm()");
String nextPage = "admin/book/modify_book_ok";
if(!file.getOriginalFilename().equals("")) {
String savedFileName = uploadFileService.upload(file);
if(savedFileName != null)
bookVo.setB_thumbnail(savedFileName);
}
int result = bookService.modifyBookConfirm(bookVo);
if(result <= 0)
nextPage = "admin/book/modify_book_ng";
return nextPage;
}
}
BookController.modifyBookConfirm()
구현.
if(!file.getOriginalFilename().equals("")) {
: 새로 업로드한 썸네일 이미지가 있는지 확인.
@Service
public class BookService {
...
public int modifyBookConfirm(BookVo bookVo) {
System.out.println("[BookSerivce] modifyBookConfirm()");
return bookDao.updateBook(bookVo);
}
}
BookService.modifyBookConfirm()
@Component
public class BookDao {
...
public int updateBook(BookVo bookVo) {
System.out.println("[BookDao] updateBook()");
String sql = "UPDATE tbl_book SET ";
List<String> args = new ArrayList<String>();
if(bookVo.getB_thumbnail() != null) {
sql += "b_thumbnail = ?, ";
args.add(bookVo.getB_thumbnail());
}
sql += "b_name = ?, ";
args.add(bookVo.getB_name());
sql += "b_author = ?, ";
args.add(bookVo.getB_author());
sql += "b_publisher = ?, ";
args.add(bookVo.getB_publisher());
sql += "b_publish_year = ?, ";
args.add(bookVo.getB_publish_year());
sql += "b_isbn = ?, ";
args.add(bookVo.getB_isbn());
sql += "b_call_number = ?, ";
args.add(bookVo.getB_call_number());
sql += "b_rental_able = ?, ";
args.add(Integer.toString(bookVo.getB_rental_able()));
sql += "b_mod_date = NOW() ";
sql += "WHERE b_no = ?";
args.add(Integer.toString(bookVo.getB_no()));
int result = -1;
try {
result = jdbcTemplate.update(sql, args.toArray());
}catch(Exception e) {
e.printStackTrace();
}
return result;
}
}
BookDao.updateBook()
구현.
if(bookVo.getB_thumbnail() != null) {
: 썸네일 변경 여부에 확인.args.add(Integer.toString(bookVo.getB_rental_able()));
: int 형은 String으로 변환해서 추가
2. 도서 정보 삭제
function deleteBook(b_no, b_name) {
console.log('deleteBook() CALLED!!');
let result = confirm('도서(' + b_name + ')를(을) 정말 삭제 하시겠습니까?');
if (result)
location.href = "<c:url value='/book/admin/deleteBookConfirm?b_no='/>" + b_no;
}
결과적으로 다음과 같은 요청을 보낸다.
- 삭제 요청 :
/library/book/admin/deleteBookConfirm?b_no=[삭제할 책의 b_no]
@Controller
@RequestMapping("/book/admin")
public class BookController {
...
@GetMapping("/deleteBookConfirm")
public String deleteBookConfirm(@RequestParam("b_no") int b_no) {
System.out.println("[BookController] deleteBookConfirm()");
String nextPage = "admin/book/delete_book_ok";
int result = bookService.deleteBookConfirm(b_no);
if(result <= 0)
nextPage = "admin/book/delete_book_ng";
return nextPage;
}
}
BookController.deleteBookConfirm()
@Service
public class BookService {
...
public int deleteBookConfirm(int b_no) {
System.out.println("[BookService] deleteBookConfirm()");
return bookDao.deleteBook(b_no);
}
}
BookService.deleteBookConfirm()
@Component
public class BookDao {
...
public int deleteBook(int b_no) {
System.out.println("[BookDao] deleteBook()");
String sql = "DELETE FROM tbl_book " + "WHERE b_no = ?";
int result = -1;
try {
result = jdbcTemplate.update(sql,b_no);
}catch(Exception e) {
e.printStackTrace();
}
return result;
}
}
BookDao.deleteBook()
'학부 강의 > 웹프로그래밍 (Spring)' 카테고리의 다른 글
[Spring] Lombok (0) | 2024.01.04 |
---|---|
[Spring] 사용자 관련 기능 구현 (0) | 2024.01.04 |
[Spring] 도서 등록, 검색 (0) | 2023.12.31 |
[Spring] Mail 보내기 (2) | 2023.12.21 |
[Spring] 관리자 로그인 (2) | 2023.12.20 |