UserDTO.java
package com.folder.app.dto;
import java.time.LocalDate;
import lombok.Data;
@Data
public class UserDTO {
private int no;
private String name;
private String email;
private Boolean gender;
private Boolean del;
private LocalDate regDate;
}
Database
CREATE TABLE user3 (
NO int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(100) NOT NULL,
email varchar(200) NULL,
pwd varchar(100) NOT NULL,
gender boolean NOT NULL DEFAULT 1,
del boolean NOT NULL DEFAULT 0,
regDate datetime NOT NULL DEFAULT now()
);
dto파일은 sql에서 생성한 테이블 컬럼과 UserDTO 클래스에서 선언한 멤버변수들과 일치 시켜주어야 한다. 왜냐하면 데이터베이스 값들과 상호작용을 하는 dao폴더(Repository)에 있는 멤버변수값이 최종적으로 dto에 있는 멤버변수에 들어가기 때문이다.
ResultDTO.java
package com.folder.app.dto;
import lombok.Data;
@Data
public class ResultDTO {
private Boolean state;
private Object result;
private String message;
}
화면에 출력할 멤버변수
요청) Client로 부터 요청을 받아 Application Layer에 처리를 위임
응답) Application Layer의 결과를 최종 Client로 전달
package com.folder.app.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import com.folder.app.dto.ResultDTO;
import com.folder.app.service.UserService;
@RestController
public class DataController {
@Autowired UserService uService;
@PostMapping("/findAll")
public ResultDTO findAll(){
return uService.findAll();
}
}
UserService 서비스에 객체를 uService 변수에 넣어준다.
findAll() 함수에서 UserService 클래스 안에 있는 findAll을 호출한다.
findAll() 함수는 반환형을 ResultDTO에 있는 멤버변수들로 지정했기 때문에
state(Boolean), result(Object), message(String)
값이 반환되게 된다.
UserService.java
package com.folder.app.service
import com.folder.app.dto.ResultDTO;
public interface UserService{
public ResultDTO findAll()
}
인터페이스를 만들어준다.
UserServiceImp.java
package com.folder.app.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.folder.app.dao.UserDao;
import com.folder.app.dto.ResultDTO;
import com.folder.app.dto.UserDTO;
@Service
public class UserServiceImp implements UserService {
private ResultDTO rDto;
@Autowired UserDao uDao;
@Override
public ResultDTO findAll(){
rDto = new ResultDTO();
List<UserDTO> resultList = uDao.findAll();
//resultList에 uDao에 들어간 데이터베이스 값이 들어간다.
if(resultList != null){
rDto.setState(true);
rDto.setResult(resultList);
}else{
rDto.setState(false);
}
return rDto;
}
}
UserDao.java
package com.folder.app.dao;
import java.util.List;
import com.folder.app.dto.UserDTO;
public interface UserDao {
public List<UserDTO> findAll();
}
인터페이스를 만들어준다.
UserDaoImp.java
package com.folder.app.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.folder.app.dto.UserDTO;
@Repository
public class UserDaoImp implements UserDao {
@Override
public List<UserDTO> findAll() {
return null;
}
}