Spring

스프링 웹 프로젝트 MVC - 책 삭제 기능 만들기 06

록's 2023. 3. 17. 09:14
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
반응형