์ ์ฒด์ ์ธ ํ๋ฆ
DB -> DAO -> SERVICE (-MAPPER) -> CONTROLLER -> WEB
DAO (Data Access Object)
- ์ค์ ๋ก DB ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฐ์ดํฐ
DOMAIN (= Entity)
Lesson.java
@Data
@Getter @Setter
@NoArgsConstructor
public class Lesson {
private int c_idx;
private String c_name;
private int ag_idx;
@Builder
public Lesson(int c_idx, String c_name, int ag_idx) {
this.c_idx = c_idx;
this.c_name = c_name;
this.ag_idx = ag_idx;
}
}
LessonTime.java
@Data @Slf4j
@Getter @Setter
@NoArgsConstructor
public class Lessontime {
private int ct_idx;
private String ct_day;
private String ct_start_time;
private String ct_end_time;
private String ct_attend_starttime;
private String ct_attend_endtime;
private String ct_start_date;
private String ct_end_date;
private String ct_break_start;
private String ct_break_end;
private int c_idx;
private int ct_start_hour;
private int ct_start_minute;
private int ct_end_hour;
private int ct_end_minute;
@Builder
public Lessontime(int ct_idx, String ct_day, String ct_start_time, String ct_end_time, String ct_attend_starttime,String ct_attend_endtime, String ct_start_date, String ct_end_date, String ct_break_start, String ct_break_end, int c_idx, int ct_start_hour, int ct_start_minute, int ct_end_hour, int ct_end_minute) {
this.ct_idx = ct_idx;
this.ct_day = ct_day;
this.ct_start_time = ct_start_time;
this.ct_end_time = ct_end_time;
this.ct_attend_starttime = ct_attend_starttime;
this.ct_attend_endtime = ct_attend_endtime;
this.ct_start_date = ct_start_date;
this.ct_end_date = ct_end_date;
this.ct_break_start = ct_break_start;
this.ct_break_end = ct_break_end;
this.c_idx = c_idx;
this.ct_start_hour = ct_start_hour;
this.ct_start_minute = ct_start_minute;
this.ct_end_hour = ct_end_hour;
this.ct_end_minute = ct_end_minute;
}
}
DTO (Data Transfer Object)
- ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๊ฐ์ฒด, getter/setter ์ญํ
- ๋ก์ง์ ๊ฐ์ง์ง ์๋ ์์ํ ๋ฐ์ดํฐ ๊ฐ์ฒด (Java Beans)
- DB์์ ๋ฐ์ดํฐ ์ป์ด์ Service / Controller ๋ก ์ ๋ฌ
- Entity(DOMAIN) ๋ฅผ DTO ํํ๋ก ๋ณํ ํ ์ฌ์ฉ
LessonDto.java
@Data
@Getter @Setter
@NoArgsConstructor
public class LessonDto {
private int c_idx;
private String c_name;
private int ag_idx;
@Builder
public LessonDto(int c_idx, String c_name, int ag_idx) {
this.c_idx = c_idx;
this.c_name = c_name;
this.ag_idx = ag_idx;
}
public Lesson toEntity() {
return Lesson.builder()
.c_idx(c_idx)
.c_name(c_name)
.ag_idx(ag_idx)
.build();
}
}
LessonetimeDto.java
@Data
@Getter @Setter
@NoArgsConstructor
public class LessontimeDto {
private int ct_idx;
private String ct_day;
private String ct_start_time;
private String ct_end_time;
private String ct_attend_starttime;
private String ct_attend_endtime;
private String ct_start_date;
private String ct_end_date;
private String ct_break_start;
private String ct_break_end;
private String c_name;
private int ag_idx;
private int c_idx;
@Builder
public LessontimeDto(int ct_idx, String ct_day, String ct_start_time, String ct_end_time, String ct_attend_starttime,String ct_attend_endtime, String ct_start_date, String ct_end_date, String ct_break_start, String ct_break_end, String c_name, int ag_idx, int c_idx) {
this.ct_idx = ct_idx;
this.ct_day = ct_day;
this.ct_start_time = ct_start_time;
this.ct_end_time = ct_end_time;
this.ct_attend_starttime = ct_attend_starttime;
this.ct_attend_endtime = ct_attend_endtime;
this.ct_start_date = ct_start_date;
this.ct_end_date = ct_end_date;
this.ct_break_start = ct_break_start;
this.ct_break_end = ct_break_end;
this.c_name = c_name; // ๊ฐ์๋ช
this.ag_idx = ag_idx;
this.c_idx = c_idx;
}
public Lessontime toEntity() {
return Lessontime.builder()
.ct_idx(ct_idx)
.ct_day(ct_day)
.ct_start_time(ct_start_time)
.ct_end_time(ct_end_time)
.ct_attend_starttime(ct_attend_starttime)
.ct_attend_endtime(ct_attend_endtime)
.ct_start_date(ct_start_date)
.ct_end_date(ct_end_date)
.ct_break_start(ct_break_start)
.ct_break_end(ct_break_end)
.c_idx(c_idx)
.build();
}
}
VO (Value Object)
- Read-Only ์์ฑ์ ์ง๋ ๊ฐ
- DTO ๋ setter/getter ๊ฐ์ง๊ณ ์์ด์ ๋ฐ์ดํฐ ๊ฐ ๋ณํ ์ ์๋ค. (= ์ธ์คํด์ค ๊ฐ๋ )
- VO ๋ getter ๋ง ๊ฐ์ง๊ณ ์์ด์ ๋ฐ์ดํฐ ๊ฐ ์์ ํ ์ ์๋ค. (= ๋ฆฌํฐ๋ด ๊ฐ)
CONTROLLER
- ๋ผ์ฐํ ๊ธฐ์ ์ ์ฌ์ฉํด ์ฌ์ฉ์ ์๋ต, ์์ฒญ ์ฒ๋ฆฌ
@RestController
@CrossOrigin
@Slf4j
public class LessonUserController {
private final LessonUserService lessonUserService;
@Autowired
public LessonUserController(LessonUserService lessonUserService){
this.lessonUserService = lessonUserService;
}
Iterator iterator;
@GetMapping("/api/user/class")
public Lesson AllLesson(@RequestParam("u_phone") String u_phone) {
int c_idx = lessonUserService.getCidx(u_phone);
return lessonUserService.getLesson(c_idx);
}
@GetMapping("/api/user/class/time")
public List<Lessontime> AllLessonTime(@RequestParam("u_phone") String u_phone) {
int c_idx = lessonUserService.getCidx(u_phone);
System.out.println(lessonUserService.getAllLessonTime(c_idx));
return lessonUserService.getAllLessonTime(c_idx);
}
}
SERVICE
@Service
public class LessonUserService {
private final LessonUserMapper lessonUserMapper;
@Autowired
public LessonUserService(LessonUserMapper lessonUserMapper) {
this.lessonUserMapper = lessonUserMapper;
}
public List<Lesson> getAllLesson() {
return lessonUserMapper.getLessonList();
}
public Lesson getLesson(int c_idx) {
System.out.println(lessonUserMapper.getLesson(c_idx));
return lessonUserMapper.getLesson(c_idx);
}
public int getCidx(String u_phone){
return lessonUserMapper.getCidx(u_phone);
}
public int getAgidx(int c_idx){
return lessonUserMapper.getAgidx(c_idx);
}
public List<Lessontime> getAllLessonTime(int u_phone) {
return lessonUserMapper.getLessonTimeList(u_phone);
}
}
MAPPER
- SQL๋ฌธ ๊ด๋ฆฌ
@Mapper
public interface LessonUserMapper {
@Select("SELECT * FROM Class")
List<Lesson> getLessonList();
@Select("select c_name from Class where c_idx = #{c_idx}")
Lesson getLesson(int c_idx);
@Select("select c_idx from User where u_phone=#{u_phone}")
int getCidx(String u_phone);
@Select("select ag_idx from Class where c_idx = #{c_idx}")
int getAgidx(int c_idx);
@Select("SELECT * FROM Classtime WHERE c_idx = #{c_idx}")
List<Lessontime> getLessonTimeList(int c_idx);
}
'JAVA > Java Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
5์ฅ ์ฐธ์กฐ ํ์ (0) | 2021.09.13 |
---|---|
4์ฅ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ (0) | 2021.09.12 |
3์ฅ ์ฐ์ฐ์ (0) | 2021.09.12 |
2์ฅ ๋ณ์์ ํ์ (0) | 2021.09.12 |
1์ฅ ์๋ฐ ์์ํ๊ธฐ (0) | 2021.09.12 |
๋๊ธ