Career/Spring Boot

[Spring Boot] Mapper/Service/Controller 만으로 웹 구축

AlexHouse 2022. 9. 25. 00:13
728x90

일반적으로 우리는 

 

Mapper -> Dao/Mapper(Repository) -> Service -> ServiceImpl -> Controller 

 

이런식으로 구조화 시킨다.

 

하지만 

 

Mapper.xml -> Service -> Controller

 

로 간단하게 웹 페이지 구축이 가능하더라..

 


DemoMapper.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.example.geo.DemoMapper">
  
	<resultMap id="getSelectList" type="Map">
		<id column="DEPT_NO" property="DEPT_NO"/>
		<id column="DNAME" property="DNAME"/>
		<id column="LOC" property="LOC"/>
	</resultMap>

	<select id="getSelectList" resultType="Map">
		SELECT 
		    DEPT_NO
		    ,DNAME
		    ,LOC
		FROM 
		    TEST
		WHERE  
		    1 = 1
	</select>

</mapper>

 

 

이건 뭐.. 너무 간단한 내용이라 그냥

 

올리고 넘어가겠다.. 그냥 쿼리 짜준거로 보면 된다.

 

 

DemoService.java
package com.example.geo;

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

import javax.inject.Inject;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service ("DemoService")

public class DemoService {

	@Inject
	private SqlSession sqlSession;
	
	private static String namespace="com.example.geo.DemoMapper";
	
	public List<Map<String, Object>> getSelectList(Map<String, Object> param) throws Exception {
		
		List<Map<String, Object>> result = sqlSession.selectList(namespace + ".getSelectList", param);

		System.out.println( "result : " + result.toString());
		System.out.println( "param : " + param.toString());
		
		return result;
		
	}
}

 

 

namespace 부분은 내가 그냥 직접 다 타이핑하기 귀찮아서 해준거고

 

private static string namespace ="[이부분을]";

 

직접 namespace 대신 해서 넣어줘도 상관 없다.

 

List<Map<String, Object>> 가 잘 이해 안가면 (구글링을 추천한다)

 

 

DemoController.java
package com.example.geo;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.annotation.Resources;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import lombok.ToString;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;


@RestController
public class DemoController {
	

	@Resource (name = "DemoService" )
	private DemoService demoService;
	
	@RequestMapping (value="/index")
	public Map<String, Object> getSelectList(@RequestParam Map<String, Object> param) throws Exception {
	
		System.out.println("##### index.jsp를 시작합니다 #####");
			
		Map<String, Object> result = new HashMap<String, Object>(); //  result 객체를 선언하고 여기에 데이터를 담겠다는 의미
		
			try {
				List<Map<String, Object>> list = demoService.getSelectList(param);
				
				result.put("SUCCESS", true);
				result.put("LIST", list);
				System.out.println(" list : " + list.toString());
			} catch (Exception e) {
				System.out.println("두근 두근 에러 발생");
				result.put("SUCCESS", false);
				result.put("MSG", e.getMessage());
			}
			
//			System.out.println(demoService.getSelectList(param));
//			System.out.println("데이터 반환 : " + param);
//			System.out.println("리절트 반환: " + result.toString());

			
			return param;
	}
}

 

 

 

 

이렇게 간략하게

 

Mapper / service / controller

 

만 이용해서 구축이 가능하다.

 

결과값

 


 

To be continue..

728x90