본문 바로가기
Spring/Spring 기초

Spring으로 CRUD 하기전 연습whith 롬복(lombok 활용)

by 미눅스[멘토] 2023. 7. 18.
728x90
CREATE TABLE BOOK(
    BOOK_ID NUMBER,
    TITLE VARCHAR2(300),
    CATEGORY VARCHAR2(100),
    PRICE NUMBER,
    CONTENT VARCHAR2(4000),
    INSERT_DATE DATE,
    CONSTRAINT PK_BOOK PRIMARY KEY(BOOK_ID)
);

태이블 생성

 

 

 

 

 

BookVO 클래스 생성

package kr.or.ddit.vo;

import java.util.Date;

//자바빈 클래스
//1) 멤버변수 2)기본 생성자 3) getter/setter메소드
public class BookVO {
	
	//멤버변수
	private int bookId;
	private String title;
	private String category;
	private int price;
	private String content;
	private Date insert_Date;
	
	//기본 생성자
	public BookVO() {
	}

	
	//getter/setter
	public int getBookId() {
		return bookId;
	}

	public void setBookId(int bookId) {
		this.bookId = bookId;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getCategory() {
		return category;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Date getInsert_Date() {
		return insert_Date;
	}

	public void setInsert_Date(Date insert_Date) {
		this.insert_Date = insert_Date;
	}


	@Override
	public String toString() {
		return "BookVO [bookId=" + bookId + ", title=" + title + ", category=" + 				category + ", price=" + price
				+ ", content=" + content + ", insert_Date=" + insert_Date + "]";
	}
	
	
	
}

 

 

 

BookController 클래스 생성

package kr.or.ddit.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import kr.or.ddit.vo.BookVO;
import lombok.extern.slf4j.Slf4j;


/* Controller 어노테이션
 스프링 프레임워크에게 "이 클래스는 웹 브라우저의 요정(equest)를
 방아들이는 컨트롤러야"라고 알려주는 것임 
 스프링은 servlet-context.xml의 context:component-scan의 설정에 의해
 이 클래스를 자바빈 객체로 등록(메모리에 바인딩)
 */
@Slf4j
@Controller
public class BookController {
	/*
	  요청URL : /create
	  요청파라미터 : 없음
	  요청방식 : get
	  
	 BookVO [bookId=0, title=이순신의 모험, category=소설, price=10000, content=null, insert_Date=null]
	 */
	@RequestMapping(value="/create", method=RequestMethod.GET)
	public ModelAndView create() {
		/*
		 ModelAndView
		 1) Model : Controller가 반환할 데이터(String, int, List, Map, VO..)를 담당
		 2) View : 화면을 담당(뷰(View : JSP)의 경로) 
		 */
		ModelAndView mav = new ModelAndView();
		
		//forwarding : JSP를 처리, 컴파일하여 HTML로 만들어 리턴
		//prefix : /WEB-INF/views/
		mav.setViewName("book/create");//book=폴더, creqate=파일
		//suffix : .jsp
		//조립되면 : /WEB-INF/views/book/create.jsp
		
		return mav;
	}
	
	
	/*
	 요청URL : /create
	 요청파라미터 : {title=이순신의 모험, categoty=소설, price=35000}
	 요청방식 : post
	*/
	@RequestMapping(value="/create", method = RequestMethod.POST)
	public ModelAndView createPost(HttpServletRequest requeset
			, ModelAndView mav, BookVO bookVO) {
		String title = requeset.getParameter("title");
		String category = requeset.getParameter("category");
		String price = requeset.getParameter("price");
		
		//log.info("title : " + title + ", category : " + category + 
		// "price : " + price);
		log.info("bookVO : " + bookVO);
		
		
		//forwarding
		mav.setViewName("book/create");
		
		return mav; 
	}
	
}

 

 

 

 

 

 

 

 

 

 

 

 

create.jsp생성

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h1>책 등록</h1>
<!-- 뷰(View) : 화면을 담당
Client -> 요청(/create) -> Server(create()메소드와 매핑. View에 create.jsp를 포워딩)
	   <- 응답(create_jsp.java, create_jsp.class, HTML**) <-
웹 브라우저(크롬)에서 HTML을 렌더링 : 브라우저가 읽어서 해석
 -->
 <!-- 
 요청URL : /create
 요청파라미터 : {title=이순신의 모험, categoty=소설, price=35000}
 요청방식 : post
  -->
 <form action="/create" method="post">
 	<!-- 폼 데이터 -->
 	<p>제목 : <input type="text" name="title" required></p>
 	<p>카테고리 : <input type="text" name="category" required></p>
 	<p>가격 : <input type="number" name="price" maxlength="10" 
 				required></p>
 	<p>
 		<input type="submit" value="저장" />
 		<input type="button" value="목록" />
 	</p>
 </form>
</body>
</html>

모든 요청은 Controller에서 받는다

 

 

 

 

 

pom.xml 하기 일단 전에

lombok을 설정할건데

Lombok은 Java 기반에서 기계적으로 작성하는 VO, DTO, Entity 관련 작업을 쉽게 할 수 있게 해주는 라이브러리
Lombok을 이용하면 Getter, Setter, ToString, hashCode 등의 메소드들을 간편하게 사용할 수 있게 해준다

 

 

 

복사

 

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.22</version>
    <scope>provided</scope>
</dependency>

 

 

xml에

dependencies에 추가 하고

 

4번 실행

 

 

 

경로 C:\Users\PC-21\.m2\repository\org\projectlombok\lombok\1.18.22

lombok이 들어있는 파일에 들어가서 경로는 위에 이미지 참고

 

 

 

 

 

cmd검색

 

 

 

cmd 창에서

java -jar lombok-1.18.22.jar

엔터 치면 이거 뜸

그러면 Specify location클릭

 

내가 쓰는 이클립스 경로 찾아감

 

 

이클립스 선택후 Select

하고 install하셈

 

 

 

하고 서버를 

stop하고

이클립스를 닫고

다시킴

 

 

그리고 실행해보기

실행

 

 

결과

'Spring > Spring 기초' 카테고리의 다른 글

Spring 템플릿 만들기  (0) 2023.07.18
Spring jstl추가  (0) 2023.07.18
Spring Log4j 설정  (0) 2023.07.18
Spring Filter(필터) 설정  (0) 2023.07.18
Spring Maven설정  (0) 2023.07.18