GDJ 24/05/30 (Spring Boot - properties 설정)

kimuki·2024년 5월 30일
post-thumbnail
CRUD 중 INSERT, UPDATE의 경우
input tag의 parameter들을 전달받아서 DB에 적용시켜야 한다
이 때 @ModelAttribute BoardVO boardVO 처럼
어노테이션을 사용하여 VO에 parameter 값을 그대로 저장하여
DB에 적용할 수 있도록 하면 된다

ex)
@PostMapping("/addBoard")
public String addBoard(@ModelAttribute BoardVO boardVO){
	
	int addBoardRow = BoardService.addBoard(boardVO);

	return "redirect:/home/board";
}

employees DB deptEmpList 출력

application.properties 설정

# 서버설정
spring.application.name=hr
server.servlet.context-path=/hr
server.port=80

# 로그설정
debug=true
logging.level.com.gd.hr=debug
logging.level.com.gd.hr.controller=debug
logging.level.com.gd.hr.mapper=debug

# 뷰 설정
# /WEB-INF/view/~~~.jsp
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

# 커넥션 풀
# datasource : 커넥션 풀을 구현하기 위한 데이터타입
# datasource는 Connection의 배열로 구성됨
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/employees
spring.datasource.username=root
spring.datasource.password=java1234

JoinController.java (Controller)

package com.gd.hr.controller;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

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 com.gd.hr.mapper.JoinMapper;
import com.gd.hr.util.TeamColor;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Controller
public class JoinController {
	
	@Autowired
	private JoinMapper joinMapper;
	
	@GetMapping("/deptEmpList")
	public String deptEmpList(Model model) {
		
		List<Map<String, Object>> deptEmpList = joinMapper.selectDeptEmpList();
		log.debug(TeamColor.PSH + "deptEmpList.size() :" + deptEmpList.size() + TeamColor.RESET);
		
		model.addAttribute("deptEmpList", deptEmpList);
		
		return "deptEmpList";
	}
}

JoinMapper.java (Mapper Interface)

package com.gd.hr.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface JoinMapper {
	
	public List<Map<String, Object>> selectDeptEmpList();
}

JoinMapper.xml (Mapper 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="com.gd.hr.mapper.JoinMapper">
	<select id="selectDeptEmpList" resultType="Map">
		SELECT
			e.emp_no empNo,
			d.dept_no deptNo,
			d.dept_name deptName,
			e.first_name firstName,
			e.last_name lastName
		FROM
			dept_emp de
				INNER JOIN
					employees e ON de.emp_no = e.emp_no
				INNER JOIN
					departments d ON d.dept_no = de.dept_no
		WHERE
			de.to_date = '9999-01-01'
		ORDER BY
			e.emp_no
		LIMIT 0, 10
	</select>
</mapper>

deptEmpList.jsp (View)

<%@ 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>
	<h1>DEPT EMP LIST</h1>
	<table border=1>
		<tr>
			<th>empNo</th>
			<th>Name</th>
			<th>deptNo</th>
			<th>deptName</th>
		</tr>
		<c:forEach var="m" items="${deptEmpList}">
			<tr>
				<td>${m.empNo}</td>
				<td>${m.firstName} ${m.lastName}</td>
				<td>${m.deptNo}</td>
				<td>${m.deptName}</td>
			</tr>
		</c:forEach>
	</table>
</body>
</html>

deptEmpList.jsp 출력결과

profile
Road OF Developer

0개의 댓글