스프링부트 db연결, erp변경

brave_chicken·2024년 5월 30일

잇(IT)생 챌린지

목록 보기
60/90

프로젝트 두 개 만듦


springbootdb

application.properties

DBTestController

package com.example.springbootdb;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class DBTestController {
	@Autowired
	DBTestDAO dao;
	
	@GetMapping("/jdbc/test")
	public String templateTest() {
		System.out.println("부서의 갯수: "+dao.jdbcTemplateTest());
		return "redirect:/";
	}
	
	@GetMapping("/mybatis/test")
	public String mybatisTest() {
		System.out.println(dao.select());
		return "redirect:/";
	}
}

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3><a href="/jdbc/test">JdbcTemplate사용하기</a></h3>
	<h3><a href="/mybatis/test">MyBatis사용하기</a></h3>
</body>
</html>

DeptDTO

package com.example.springbootdb.dto;

import org.apache.ibatis.type.Alias;

@Alias("dept")
public class DeptDTO {
	private String deptno;
	private String deptname;
	private String deptStartDay;
	private String deptEndDay;
	private String deptlevel;
	private String deptstep;
	private String deptuppercode;
	private String job_category;
	private String mgr_id;
	private String deptaddr;
	private String depttel;
	public DeptDTO(String deptno, String deptname, String deptStartDay, String deptEndDay, String deptlevel,
			String deptstep, String deptuppercode, String job_category, String mgr_id, String deptaddr,
			String depttel) {
		super();
		this.deptno = deptno;
		this.deptname = deptname;
		this.deptStartDay = deptStartDay;
		this.deptEndDay = deptEndDay;
		this.deptlevel = deptlevel;
		this.deptstep = deptstep;
		this.deptuppercode = deptuppercode;
		this.job_category = job_category;
		this.mgr_id = mgr_id;
		this.deptaddr = deptaddr;
		this.depttel = depttel;
	}
	@Override
	public String toString() {
		return "DeptDTO [deptno=" + deptno + ", deptname=" + deptname + ", deptStartDay=" + deptStartDay
				+ ", deptEndDay=" + deptEndDay + ", deptlevel=" + deptlevel + ", deptstep=" + deptstep
				+ ", deptuppercode=" + deptuppercode + ", job_category=" + job_category + ", mgr_id=" + mgr_id
				+ ", deptaddr=" + deptaddr + ", depttel=" + depttel + "]";
	}
	public String getDeptno() {
		return deptno;
	}
	public void setDeptno(String deptno) {
		this.deptno = deptno;
	}
	public String getDeptname() {
		return deptname;
	}
	public void setDeptname(String deptname) {
		this.deptname = deptname;
	}
	public String getDeptStartDay() {
		return deptStartDay;
	}
	public void setDeptStartDay(String deptStartDay) {
		this.deptStartDay = deptStartDay;
	}
	public String getDeptEndDay() {
		return deptEndDay;
	}
	public void setDeptEndDay(String deptEndDay) {
		this.deptEndDay = deptEndDay;
	}
	public String getDeptlevel() {
		return deptlevel;
	}
	public void setDeptlevel(String deptlevel) {
		this.deptlevel = deptlevel;
	}
	public String getDeptstep() {
		return deptstep;
	}
	public void setDeptstep(String deptstep) {
		this.deptstep = deptstep;
	}
	public String getDeptuppercode() {
		return deptuppercode;
	}
	public void setDeptuppercode(String deptuppercode) {
		this.deptuppercode = deptuppercode;
	}
	public String getJob_category() {
		return job_category;
	}
	public void setJob_category(String job_category) {
		this.job_category = job_category;
	}
	public String getMgr_id() {
		return mgr_id;
	}
	public void setMgr_id(String mgr_id) {
		this.mgr_id = mgr_id;
	}
	public String getDeptaddr() {
		return deptaddr;
	}
	public void setDeptaddr(String deptaddr) {
		this.deptaddr = deptaddr;
	}
	public String getDepttel() {
		return depttel;
	}
	public void setDepttel(String depttel) {
		this.depttel = depttel;
	}	
	
}

DBTestDAO

package com.example.springbootdb;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import com.example.springbootdb.dto.DeptDTO;

@Repository
public class DBTestDAO {
	@Autowired
	JdbcTemplate template;
	
	@Autowired
	SqlSession sqlSessionTemplate;
	
	//jdbc테스트
	public int jdbcTemplateTest() {
		return template.queryForObject("select count(deptno) from dept", Integer.class);
	}
	
	//마이바티스 테스트->매퍼 필요
	public List<DeptDTO> select(){
		return sqlSessionTemplate.selectList("com.multi.dbtest.select");
	}
}

test.xml

  • resultType은 DeptDTO에서 준 alias
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.multi.dbtest">
	<select id="select" resultType="dept">
		select * from dept
	</select>
</mapper>

bootErp

  • el, jstl은 jsp에서 쓰는것..

롬복, 타임리프 레이아웃 추가

application.properties

레거시에서 파일 옮겨오기

jsp확장자를 html로 변경, jsp 페이지 지시자, 태그립 지시자 지우기

@Alias 주기

indexController

indexLayout.html

  • html로 변경(jsp안되니 넘어오며 기본작업, 이하생략)
  • replace 있는 페이지이므로 타임리프뿐 아니라 레이아웃까지 추가
  • include/top는 위치, top은 타임리프

mainContent

  • 상단 타임리프주기(교체될페이지만 레이아웃추가하고 ..다른건 타임리프만)
  • 바디 메인컨텐츠로 프레그먼트

top

  • 메인컨텐츠와 똑같은 작업
  • if~else를 th:if와 th:unless로 변경


미션1.mainContent

  • mainContent를 수정해서 디비에서 데이터를 가져와서 출력할 수 있도록 작업하세요
  • th:each로 출력


미션2

게시판목록 출력하는 부분을 타임리프로 변환하세요
boardlist.jsp를 boardlist.html로 변환하고 작업하세요
템플릿파일명은 mainLayout.html이니 mainLayout.jsp도 mainLayout.html로 변경하고 수정하세요

BoardController

mainLayout

boardlist

<body>
	<div style="padding-top: 30px" layout:fragment="content">
		<div class="col-md-3" style="padding-bottom: 10px">
		    구분:
			<form action="">
				<select name="category"  id="category">
					<option value="all">전체게시물</option>
					<option value="경조사">경조사</option>
					<option value="사내소식">사내소식</option>
					<option value="게시판">게시판</option>
				</select>
			</form>
		</div>
		<table class="table">
			<thead>
				<tr>
					<th>번호</th>
					<th>제목</th>
					<th>작성자</th>
					<th>등록일</th>
					<th>삭제</th>
				</tr>
			</thead>
			<tbody>
				<tr th:each="board:${boardlist}">
					<td th:text="${board.board_no}"></td>
					<td><a href="/erp/board/read?board_no=${board.board_no }&action=READ">
					<span th:text="${board.title }"></span></a></td>
					<td><span th:text="${board.id }"></span></td>
					<td><span th:text="${board.write_date }"></span></td>
					<td>
						<a href="/erp/board/delete">삭제</a>
					</td>
				</tr>
			</tbody>
		</table>
	
		<form action="/erp/board/search" method="post">
			<select name="tag">
				<option value="id">작성자</option>
				<option value="title">제목</option>
				<option value="content">본문</option>
				<option value="write_date">작성일</option>
			</select> <input type="text" name="search" /> <input type="submit" value="검색">
			<ul class="nav navbar-nav navbar-right">
				<li><a href="/erp/board/write" style="text-align: right;">글쓰기</a></li>
			</ul>
		</form>
	</div>
</body>

board_menu

본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.

0개의 댓글