10. 선수 등록
* 선수 등록은 ADMIN 계정만 가능하도록 한다.
- 선수 entity 생성
시퀀스를 생성하여 id가 자동으로 증가 되도록 한다.
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 |