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;
}
}