728x90
반응형
책 삭제 기능 개요
책 삭제를 위한 기능을 만든다.
브라우저에서 /delete 주소에 http POST 메소드로 bookId 파라미터를 전달하면 책 정보가 삭제된다
책 삭제 기능 쿼리 작성
쿼리를 XML에 옮긴다.
src/main/resources/sqlmap/book_SQL.xml
// book_SQL.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="book">
... (생략) ...
<delete id="delete" parameterType="hashMap">
<![CDATA[
delete from book
where
book_id = #{bookId}
]]>
</delete>
</mapper>
책 삭제 기능 DAO 메소드 작성
// BookDao.java
package sample.spring.codehows;
import java.util.Map;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class BookDao {
... (생략) ...
public int delete(Map<String, Object> map) {
return this.sqlSessionTemplate.delete("book.delete", map);
}
}
책 삭제 기능 서비스 클래스 메소드 생성
src/main/java/sample/spring/yse/BookServiceImpl.java
// BookServiceImpl.java
package sample.spring.codehows;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class BookServiceImpl implements BookService {
... (생략) ...
@Override
public boolean remove(Map<String, Object> map) {
int affectRowCount = this.bookDao.delete(map);
return affectRowCount == 1;
}
}
책 삭제 기능 서비스 인터페이스 메소드 시그니쳐 생성
// BookService.java
package sample.spring.codehows;
import java.util.Map;
public interface BookService {
... (생략) ...
boolean remove(Map<String, Object> map);
}
책 삭제 기능 컨트롤러 메소드 추가
src/main/java/sample/spring/yse/BookController.java
// BookController.java
package sample.spring.codehows;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class BookController {
... (생략) ...
@RequestMapping(value = "/delete", method = RequestMethod.POST)
public ModelAndView deletePost(@RequestParam Map<String, Object> map) {
ModelAndView mav = new ModelAndView();
boolean isDeleteSuccess = this.bookService.remove(map);
if (isDeleteSuccess) {
mav.setViewName("redirect:/list");
}else {
String bookId = map.get("bookId").toString();
mav.setViewName("redirect:/detail?bookId=" + bookId);
}
return mav;
}
}
책 삭제 확인
상세 페이지에서 웹 브라우저 개발자도구를 켠다. F12를 누르면 된다. 이후 network 탭을 선택해 둔다.
삭제 버튼을 클릭한다.
목록 페이지로 전환되는 것을 확인한다. 아직 책 목록 페이지를 만들지 않았으므로 404 오류가 나는 것이 정상이다.
728x90
반응형
'Spring' 카테고리의 다른 글
스프링 - Part 1 - 스프링 개발환경 구축 (1.개발을 위한 준비, 2.스프링의 특징과 의존성 주입, 3.스프링과 Oracle Database 연동) (0) | 2023.03.20 |
---|---|
스프링 웹 프로젝트 MVC - 책 목록 만들기, 책 검색 기능 추가하기 07 (2) | 2023.03.17 |
스프링 웹 프로젝트 MVC - 책 수정 화면 만들기, 수정 기능 만들기 05 (0) | 2023.03.16 |
스프링 웹 프로젝트 MVC - 책 상세 화면 만들기 04 (2) | 2023.03.16 |
스프링 웹 프로젝트 MVC - 프로젝트 세팅 00 (0) | 2023.03.16 |