프로젝트

10. 선수 등록

uni5948 2021. 11. 25. 21:14

10. 선수 등록

 * 선수 등록은 ADMIN 계정만 가능하도록 한다.

  • 선수 entity 생성

시퀀스를 생성하여 id가 자동으로 증가 되도록 한다.

선수 entity 추가

package com.example.entity;

더보기
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@Entity
@Setter
@Getter
@NoArgsConstructor
@ToString
@SequenceGenerator(name = "SEQ_PLAYER_NUM", sequenceName = "SEQ_PLAYER_NUM", initialValue = 1, allocationSize = 1)
@Table(name = "PLAYER")
public class Player {
   
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_PLAYER_NUM")
    @Column(name = "PLAYERNO")
    private Long playerno = null;
   
    @Column(name = "PLAYERNAME")
    private String playername = null;

    @Column(name = "PLAYERAGE")
    private Long playerage = 0L;

    @Column(name = "PLAYERHEIGHT")
    private Long playerheight = 0L;

    @Column(name = "PLAYERWEIGHT")
    private Long playerweight = 0L;

    @Column(name = "PLAYERPOSITION")
    private String playerposition = null;

    @Column(name = "PLAYERCOUNTRY")
    private String playercountry = null;

    @Column(name = "PLAYERPRICE")
    private Long playerprice = 0L;

    @Lob
    @Column(name = "IMAGE")
    private byte[] image = null;

    @Column(name = "IMAGENAME")
    private String imagename = null;

    @Column(name = "IMAGETYPE")
    private String imagetype = null;
 
    @ManyToOne
    @JoinColumn
    private Team team;

    @ManyToOne
    @JoinColumn
    private Agent agent;
}
  • 선수 저장소 생성

선수 저장소 생성

PlayerRepositoy

package com.example.repository;

import com.example.entity.Player;

import org.springframework.data.jpa.repository.JpaRepository;

public interface PlayerRepositoy extends JpaRepository<Player, Long>{
   
}
  • 선수 서비스 생성

선수 서비스 생성

PlayerService

package com.example.service;

import com.example.entity.Player;

import org.springframework.stereotype.Service;

@Service
public interface PlayerService {
   
    //선수 등록
    public void insertPlayer(Player player);
}

PlayerServiceImpl

package com.example.service;

import com.example.entity.Player;
import com.example.repository.PlayerRepositoy;

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

@Service
public class PlayerServiceImpl implements PlayerService{
   
    @Autowired
    PlayerRepositoy pRepositoy;

    //선수 등록
    @Override
    public void insertPlayer(Player player) {
        pRepositoy.save(player);
    }
}
  • 선수 등록 

 * 선수 등록은 이미지가 첨부 되어야 하므로 @ModelAttribute 를 사용한다.


    //선수 등록
    //127.0.0.1:8080/REST/admin/playerinsert
    @RequestMapping(value = "/admin/playerinsert", method = {RequestMethod.POST},
    consumes = MediaType.ALL_VALUE,
    produces = MediaType.APPLICATION_JSON_VALUE)
    public Map<String, Object> agentinsertPOST(
        @ModelAttribute Player player,
        @RequestParam(name = "file") MultipartFile file,
        @RequestHeader("token") String token){
        Map<String, Object> map = new HashMap<String, Object>();
        try{
            player.setImage(file.getBytes());
            player.setImagename(file.getOriginalFilename());
            player.setImagetype(file.getContentType());
            pService.insertPlayer(player);
            map.put("status", 200);
        }
        catch(Exception e){
            e.printStackTrace();
            map.put("status", e.hashCode());
        }
        return map;
    }
  • 선수 등록

* 등록 전 admin 계정으로 로그인 한 뒤 토큰을 받아온다.

생성된 토큰을 선수 등록 시 header에 넣어준다.

토큰 생성

선수 등록

선수 등록

  •  db 확인

등록 성공

'프로젝트' 카테고리의 다른 글

12. 선수 1명, 전체 조회  (0) 2021.12.07
11. 선수 정보 수정  (0) 2021.12.07
9. 팀, 에이전트 등록  (0) 2021.11.24
8. 회원 정보 수정  (0) 2021.11.23
7. 로그인  (0) 2021.11.22