✔ GradeController.java
package edu.global.ex.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import edu.global.ex.vo.GradeVO; @RequestMapping("/grade") @Controller public class GradeController { @GetMapping("/") public String kem_form() { return "kem_form"; } @PostMapping("/total2") public String kem_form2(GradeVO gradeVO) { // command 객체 생성 return "grade"; } }
✔ grade.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 국어 : ${gradeVO.kor}<br> 영어 : ${gradeVO.eng}<br> 수학 : ${gradeVO.math}<br> 합계 : ${gradeVO.total} <br> 평균 : ${gradeVO.avg}<br> 등급 : ${gradeVO.grade}<br> <hr> 합계 : ${gradeVO.getTotal()} <br> 평균 : ${gradeVO.getAvg()}<br> 등급 : ${gradeVO.getGrade()}<br> toString : ${gradeVO.toString()}<br> </body> </html>
- 결과
✔ BoardVO.java
package edu.example.ex.vo; import java.sql.Timestamp; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; @Getter @Setter @NoArgsConstructor @AllArgsConstructor @ToString public class BoardVO { private int bid; private String bname; private String btitle; private String bcontent; private Timestamp bdate; private int bhit; private int bgroup; private int bstep; private int bindent; }
✔ BoardController.java
package edu.example.ex.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import edu.example.ex.service.BoardService; import lombok.extern.slf4j.Slf4j; @Slf4j // 로그 @Controller @RequestMapping("/jboard/*") public class BoardController { @Autowired private BoardService boardService; @GetMapping("/list") public String view_list(Model model) { log.info("view_list() .."); System.out.println("view_list() .."); model.addAttribute("boards", boardService.getList()); return "/board/list"; } }
✔ BoardDAO.java
package edu.example.ex.repository; import java.util.List; import org.springframework.stereotype.Repository; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.sql.Timestamp; import java.util.ArrayList; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import edu.example.ex.vo.BoardVO; import lombok.extern.slf4j.Slf4j; @Slf4j @Repository public class BoardDAO { private String url = "jdbc:oracle:thin:@localhost:1521:xe"; private String uid = "scott"; private String upw = "tiger"; public BoardDAO() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { e.printStackTrace(); } } public List<BoardVO> boardSelect() { List<BoardVO> boards = new ArrayList<BoardVO>(); Connection con = null; Statement stmt = null; ResultSet resultSet = null; try { String sql = "Select * from mvc_board"; con = DriverManager.getConnection(url, uid, upw); stmt = con.createStatement(); resultSet = stmt.executeQuery(sql); while (resultSet.next()) { int bid = resultSet.getInt("bid"); String bname = resultSet.getString("bname"); String btitle = resultSet.getString("btitle"); String bcontent = resultSet.getString("bcontent"); Timestamp bdate = resultSet.getTimestamp("bdate"); int bhit = resultSet.getInt("bhit"); int bgroup = resultSet.getInt("bgroup"); int bstep = resultSet.getInt("bstep"); int bindent = resultSet.getInt("bindent"); BoardVO vo = new BoardVO(bid, bname, btitle, bcontent, bdate, bhit, bgroup, bstep, bindent); boards.add(vo); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (resultSet != null) resultSet.close(); if (stmt != null) stmt.close(); if (con != null) con.close(); } catch (Exception e) { e.printStackTrace(); } } return boards; } }
✔ BoardService.java
package edu.example.ex.service; import java.util.List; import edu.example.ex.vo.BoardVO; public interface BoardService { public abstract List<BoardVO> getList(); }
✔ BoardServiceImpl.java
package edu.example.ex.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import edu.example.ex.repository.BoardDAO; import edu.example.ex.vo.BoardVO; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; @Slf4j @Service @AllArgsConstructor @NoArgsConstructor public class BoardServiceImpl implements BoardService { @Autowired // 주입 (객체 생성 시 new를 하지 않고도 생성이 가능) private BoardDAO dao; @Override public List<BoardVO> getList() { log.info("getList().."); return dao.boardSelect(); } }
- 결과