본문 바로가기
Spring 게시판 기초

2. 출력해보기

by dantriss 2022. 10. 1.

결과물

출력될 화면
링크 클릭시 이동


oracle sys계정에서 test계정 생성

 

create user test1 IDENTIFIED by tiger;
grant DBA, connect to test1;

테스트 상태 성공일시 접속

test  테이블 생성

CREATE TABLE "TEST1"."TEST" 
   ( "NAME" VARCHAR2(20 BYTE) NOT NULL ENABLE, 
"AGE" NUMBER(4,0) NOT NULL ENABLE,

"USERNUM" NUMBER(20,0) NOT NULL ENABLE
   )

 

값 입력

INSERT INTO "TEST1"."TEST" (NAME, AGE) VALUES ('Hong', '20',1)

INSERT INTO "TEST1"."TEST" (NAME, AGE) VALUES ('Kim', '22',2)
INSERT INTO "TEST1"."TEST" (NAME, AGE) VALUES ('Park', '25',3)

 


src/main/java에 생성

패키지 com.project.controller -> HomeController (class)

패키지 com.project.service -> ProjectService (interface)

패키지 com.project.service.dao -> ProjectDAO (interface)

패키지 com.project.service.impl -> ProjectServiceImpl (class)

패키지 com.project.vo -> ProjectVO (class)

 

 

ProjectVO

package com.project.vo;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class ProjectVO {
private String name;
private int age;
private int usernum;

}

 

 

ProjectDAO

package com.project.service.dao;

import java.util.List;

import com.project.vo.ProjectVO;

public interface ProjectDAO {
	
		List<ProjectVO> selectProjectList() throws Exception;
}

 

 

ProjectService

package com.project.service;

import java.util.List;

import com.project.vo.ProjectVO;


public interface ProjectService {
	List<ProjectVO> selectProjectList() throws Exception;
}

 

 

ProjectServiceImpl

package com.project.service.impl;

import java.util.List;

import javax.inject.Inject;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.project.service.ProjectService;
import com.project.service.dao.ProjectDAO;
import com.project.vo.ProjectVO;


@Service("ProjectService")
public class ProjectServiceImpl implements ProjectService{
	@Autowired
	private ProjectDAO projectMapper;

	@Override
	public List<ProjectVO> selectProjectList() throws Exception {
		// TODO Auto-generated method stub
		return projectMapper.selectProjectList();
	}

}

 

 

HomeController

package com.project.controller;

import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.project.service.ProjectService;
import com.project.vo.ProjectVO;

import lombok.RequiredArgsConstructor;

/**
 * Handles requests for the application home page.
 */
@Controller
@RequiredArgsConstructor
public class HomeController {
	@Resource(name = "ProjectService")
	private ProjectService projectService;
	
	
	
	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	
	/**
	 * Simply selects the home view to render by returning its name.
	 */
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		logger.info("Welcome home! The client locale is {}.", locale);
		
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "home";
	}
	
	@RequestMapping(value = "/project")
	public String projectList(Model model) throws Exception {

	    List<ProjectVO> list = projectService.selectProjectList();

	    logger.info(list.toString());

	    model.addAttribute("list", list);

	    return "projectList";
	}
	
}
src/main/resources 에 mapper 폴더 생성 후 Tb_Project_SQL.xml 생성
usernum기준으로 내림차순정렬(desc)
* 참고로 오름차순정렬은 asc (default값)
<?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.project.service.dao.ProjectDAO">

 <select id="selectProjectList" resultType="projectVO">
	SELECT * FROM TEST ORDER BY USERNUM DESC
 </select>

</mapper>

 

 

src/main/webapp/WEB-INF/views에 projectList.jsp 생성
a태그로 메인페이지로 이동하는 링크생성
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"/>
    <title>Home</title>
</head>

<body>
<h1>Project List</h1>

<table border="1">
<thead>
  <tr>
  	<th>번호</th>
    <th>이름</th>
    <th>나이</th>
  </tr>
</thead>
<tbody>
<c:forEach var="item" items="${list}">
  <tr>
  	<td>${item.usernum}</td>
    <td>${item.name}</td>
    <td>${item.age}</td>
  </tr>
</c:forEach>
</tbody>
</table>
<a href="/">move to the main page</a>
</body>
</html>
src/main/webapp/WEB-INF/views에 있는 home.jsp에 a태그로 링크 생성
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	Hello world!  
</h1>

<P>  The time on the server is ${serverTime}. </P>
<!-- 추가됨 -->
<a href="project">move to list</a>
</body>
</html>

댓글