Step-by-Step
[6] 구현 - 간단히 프로젝트 구조 설정 본문
📜이전📜
프로젝트 구조
Controller - Service - Mapper.java - Mapper.xml - DB
지난번 프로젝트 참조함 - https://smile-development.tistory.com/59
Controller
@RestController
@RequestMapping("/user")
public class UserController {
	
	@Autowired
	UserService userService;
	
	@PostMapping("/register")
	public ResponseEntity<UserDTO> register(UserDTO userDTO) {
		System.out.println("register");
		
		if(!userDTO.isNotNull())
			return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
		
		userService.register(userDTO);
		
		return new ResponseEntity<>(HttpStatus.OK);
	}
}
- Null 데이터가 존재하는 경우 잘못된 요청으로 간주하고 응답 보냄
 - Null이 아닐 경우 Service로 보냄 (세부 로직은 차차 추가할 예정)
 
Service
@Service
public class UserService {
	
	@Autowired
	UserMapper userMapper;
	
	public void register(UserDTO userDTO) {
		userMapper.register(userDTO);
	}
}
- 비밀번호 암호화 추가 예정
 - 여러 작업(아직 아무것도 x) 후 Register로 넘어감
 
Mapper (Interface)
@Mapper
public interface UserMapper {
	public void register(UserDTO userDTO);
}
- Mapper 인터페이스 - Mapper.xml과 연동되는 부분
 
Mapper (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.webapp.dreamers.mapper.UserMapper">
	
	<insert id="register">
		INSERT INTO user(user_id, user_name, user_pw) VALUES (#{userid},#{username},#{password})
	</insert>
	
</mapper>
- UserDTO 객체를 넘겨줬으니 #{필드명} 을 이용해서 값을 가져와 sql문 작성
 - 자세한 부분은 다음 포스팅 참조
 
UserDTO
@Getter
@Setter
@AllArgsConstructor
public class UserDTO {
	private String userid;
	private String email;
	private String password;
	private String username;
	
	
	public boolean isNotNull() {
		return userid!=null && email != null && password!=null && username != null;
	}
}
- Lombok 사용해서 간결한 코드
 - 어째서인지 userDTO == null 이 인식되지 않아서, 메소드 추가해서 확인하는 중임
 
'프로젝트 > Dreamers (Blog)' 카테고리의 다른 글
| [7] 구현 - MyBatis 사용 (0) | 2023.02.19 | 
|---|---|
| [5] 기획 - SQL문 작성 (0) | 2023.02.14 | 
| [4] 기획 - 플로우 차트 (Flow Chart) (0) | 2023.02.08 | 
| [3] 기획 - 데이터 모델링 (2) 테이블 작성 & DB Diagram (0) | 2023.01.26 | 
| [2] 기획 - 데이터 모델링 (1) ERD 다이어그램, 정규화 (0) | 2023.01.25 | 
			  Comments