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