Step-by-Step

[6] 구현 - 간단히 프로젝트 구조 설정 본문

프로젝트/Dreamers (Blog)

[6] 구현 - 간단히 프로젝트 구조 설정

희주(KHJ) 2023. 2. 18. 23:31

📜이전📜

[5] 기획 - SQL문 작성

 

 

프로젝트 구조

 

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 이 인식되지 않아서, 메소드 추가해서 확인하는 중임
Comments