1. 책 입력 기능 : 책 정보를 입력하기 위해 기능을 만듭니다.
2. 책 매퍼 XML 생성 : 쿼리를 작성하는 XML 파일 생성
▷ src/main/resources/ 우클릭 → new → folder → sqlmap 디렉터리 생성
폴더와 XML파일을 아래와 같이 생성합니다.
◎ sqlmap 디렉터리 → new → other → XML 파일 → 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"> <insert id="insert" parameterType="hashMap" useGeneratedKeys="true" keyProperty="book_id"> <![CDATA[ insert into book (title, category, price) values (#{title}, #{category}, #{price}) ]]> </insert> </mapper>
3. 책 DAO 클래스 생성
▷ 매퍼 XML을 실행시키는 DAO(Data Access Object) 클래스를 생성
◎ src/main/java → sample.spring.codehows 패키지 우클릭 후 BookDao 클래스 생성
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 { @Autowired SqlSessionTemplate sqlSessionTemplate; // 책 데이터 입력 쿼리를 실행하는 DAO 메소드 public int insert(Map<String, Object> map) { return this.sqlSessionTemplate.insert("book.insert", map); } }
4. 책 서비스 클래스 생성
▷ 서비스 클래스는 비즈니스 클래스가 위치하는 곳. 스프링MVC 구조에서 서비스 클래스는 컨트롤러와 DAO를 연결하는 역할
◎ src/main/java → sample.spring.codehows 패키지 우클릭 후 BookServiceImpl 클래스 생성
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 { @Autowired BookDao bookDao; // 책 입력 기능 서비스 클래스 메소드 생성 @Override public String create(Map<String, Object> map) { int affectRowCount = this.bookDao.insert(map); if(affectRowCount == 1) { return map.get("book_id").toString(); } return null; } }
위와 같이 오류난 부분에 마우스를 올린 후 BookService 인터페이스를 만들어줍니다.
5. 책 서비스 인터페이스 생성(BookService)
인터페이스의 경로는 src/main/java/sample/spring/codehows 입니다.
package sample.spring.codehows; import java.util.Map; public interface BookService { // 서비스 인터페이스에 메소드 시그니쳐 추가 String create(Map<String, Object> map); }
6. 책 입력 기능 컨트롤러 서비스 빈 추가(BookController 클래스 생성)
▷ 경로 : src/main/java → sample.spring.codehows → BookController 클래스 생성
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="/create", method=RequestMethod.GET) public ModelAndView create() { return new ModelAndView("book/create"); } // 책 입력 기능 컨트롤러 서비스 빈 추가 @Autowired BookService bookService; // 책 입력 기능 컨트롤러 메소드 추가 @RequestMapping(value = "/create", method= RequestMethod.POST) public ModelAndView createPost(@RequestParam Map<String, Object> map) { ModelAndView mav = new ModelAndView(); String bookId = this.bookService.create(map); if(bookId == null) { mav.setViewName("redirect:/create"); } else { mav.setViewName("redirect:/detail?bookId=" + bookId); } return mav; } }
7. 브라우저 접속 : http://localhost:8080/create
값을 입력하고 저장을 누르면 아래와 같이 404에러가 나타나지만 SQL에는 데이터가 입력된 것을 확인할 수 있습니다.
◎ 데이터가 입력된 테이블 확인
create jsp파일을 생성한 것을 xml 파일을 통해 데이터베이스 작성하고 연결하면 됩니다.
404에러가 나타나지만 MySQL에 데이터는 전달됩니다.
데이터 연결해서 페이지 변경되는 예제도 한 번 해볼게요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > Spring' 카테고리의 다른 글
[코드로 배우는 스프링 웹 프로젝트] java spring 책 수정 기능 만들기 (0) | 2023.03.17 |
---|---|
[코드로 배우는 스프링 웹 프로젝트] java spring 책 수정 화면 만들기 (0) | 2023.03.17 |
[코드로 배우는 스프링 웹 프로젝트] java spring 책 상세 화면 만들기 (0) | 2023.03.16 |
[코드로 배우는 스프링 웹 프로젝트] java spring MySQL 연동 방법 (0) | 2023.03.16 |
[코드로 배우는 스프링 웹 프로젝트] java spring 설치 방법 (0) | 2023.03.15 |