-목차-

구조1차

구조2차

 

 

 

구조 1차

구조 2차 코드 참조해서 봐,,,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

구조 2차

 

 

 

 

 

 

 

-코드-

DemoApplication.java   (실행파일)

 

DmContestController.java   (컨트롤러)

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;

import com.example.demo.dto.D1;
import com.example.demo.service.DemoService2;


@Controller
@RequestMapping("/contest")
public class DmContestController {

	@Autowired
	DemoService2 demoservice;
	
	// 첫번째 방법 - test infos (포스트맨)
	@GetMapping("/infos")
	@ResponseBody
	public String contests() {

		return "hello world";
	}

	// 두번째 방법 - contest info (포스트맨)
	// @PathVariable : PathVariable의 경우 url에서 각 구분자에 들어오는 값을 처리해야 할 때 사용합니다.
	@GetMapping("/infos11/{page}")
	@ResponseBody
	public ArrayList<String> contests(@PathVariable int page) {
		Map<Integer, ArrayList<String>> db = new HashMap<Integer, ArrayList<String>>();
		ArrayList<String> data = new ArrayList<String>();
		data.add("harry potter");
		data.add("ring of king");
		data.add("hello world");
		db.put(1, data);
		db.put(2, data);

		return db.get(page);
	}

	// 셋번째 방법 - contest info3 (포스트맨)-------------
	@GetMapping("/infosField")
	@ResponseBody
	public String contest(String field) {
		String a = field + "받음";

		return a;
	}

	// 넷번째 방법 - contest info2 (포스트맨)-------
	// @RequestBody : 객체 받을 때 사용하는거
	// 특정 분야 콘테스트 조회
	@GetMapping("/infos12")
	@ResponseBody
	public List<Integer> contest(@RequestBody D1 d1) {
		List<Integer> db2 = new ArrayList<Integer>();
		db2.add(d1.test1);
		db2.add(d1.test2);
		db2.add(d1.test3);
		db2.add(demoservice.test().size()+1);
		
		return db2;
	}

	// like (포스트맨)--------------
	// 특정 콘테스트 좋아요
	@PostMapping("/like")
	@ResponseBody
	public List<Integer> like(@RequestParam int test1, @RequestParam int test2, @RequestParam int test3) {
		List<Integer> db2 = new ArrayList<Integer>();
//		db2.add(test1);
		db2.add(test2);
		db2.add(test3);

		return db2;
	}
	
	

}

 

 

 

D1.java  (모델)

package com.example.demo.dto;

public class D1 {
	public Integer test1;
	public Integer test2;
	public Integer test3;
}

 

 

 

ContestRepository.java     (JPA 사용할려고 "인터페이스" 입니다!!)

 

 

 

Contest.java  (JPA 사용할려고 "테이블코드")

import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@Table(name = "contest")
public class Contest {
	// 연습용 
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private @Column(name = "id") int id;
	
	//공모전 이름/설명
	private @Column(name = "name") String name;
	private @Column(name = "intro") String intro;
	
	//공모전 분야/부문
	/**
	 * 알고리즘 : Algorithm
	 * 디자인 : Design
	 * 임베디드 : Embedded
	 * 빅데이터 : Bigdata
	 * 모바일 : Mobile
	 * 게임 : Game
	 * 블록체인 : Blockchain
	 * 해킹보안 : Security
	 */
	private @Column(name = "field") String field;
	private @Column(name = "department") String department;
	
	//공모전 주최명/지역명
	private @Column(name = "organizationName") String organizationName;
	private @Column(name = "organizationArea") String organizationArea;
	
	//공모전 접수기간
	private @Column(name = "subStart") LocalDateTime subStart;
	private @Column(name = "subEnd") LocalDateTime subEnd;
	
	//공모전 예선기간
	private @Column(name = "preStart") LocalDateTime preStart;
	private @Column(name = "preEnd") LocalDateTime preEnd;
	
	//공모전 본선기간
	private @Column(name = "onStart") LocalDateTime onStart;
	private @Column(name = "onEnd") LocalDateTime onEnd;
	
	//공모전 좋아요
	private @Column(name = "likeNum") int likeNum;
	
	//공모전 URL
	private @Column(name = "homepageURL") String homepageURL;
	
	//공모전 이미지 (URL)
	private @Column(name = "imageURL") String imageURL;
	
	//공모전 추가자료 (URL)
	private @Column(name = "attachedFileURL") String attachedFileURL;
}

 

 

 

 

 

DemoService2.java   (서비스코드)

 

 

(참고 - 서비스코드 기본 형태)