Back-End/Spring
실습하다 아까운 메인이라.. 나중에 공부하려고 여기다 적어둔다.
EverJunior Minjoo
2022. 10. 11. 10:47
ㅈㄱㄴ
package com.example.quiz;
import com.example.quiz.entity.Quiz;
import com.example.quiz.repository.QuizRepository;
import com.example.quiz.service.QuizService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.*;
@SpringBootApplication
public class QuizApplication {
public static void main(String[] args) {
SpringApplication.run(QuizApplication.class, args).getBean(QuizApplication.class).execute();
}
/* 인젝션 */
@Autowired
QuizService service;
/* 실행 메소드 */
private void execute() {
// 등록처리
// setup();
// 전체항목 취득
// showList();
// showOne();
// updateQuiz();
// deleteQuiz();
doQuiz();
}
/* 퀴즈 2건을 등록합니다. */
private void setup() {
// 엔티티 생성
Quiz quiz1 = new Quiz(null, "자바는 객체 지향 언어입니다. ", true, "등록담당");
Quiz quiz2= new Quiz(null, "스프링 데이터는 데이터 액세스에 관련된 기능을 제공합니다.", true, "등록담당");
Quiz quiz3 = new Quiz(null, "프로그램이 많이 등록되어 있는 서버를 라이브러리라고 합니다. ", false, "등록담당");
Quiz quiz4 = new Quiz(null, "@Component는 인스턴스 생성 어노테이션입니다." ,true, "등록담당");
Quiz quiz5 = new Quiz(null, "스프링 MVC 에서 구현하고있는 디자인패턴에서 모든 요청을 하나의 컨트롤러에서 받는것을 싱글컨트롤러 패턴이라고 합니다. ", false, "등록담당");
// 리스트에 엔티티를 저장한다.
List<Quiz> quizList = new ArrayList<>();
//첫 인수에 저장될 객체를, 두번쨰 인수부터는 저장할 엔티티를 넘겨준다.
Collections.addAll(quizList, quiz1,quiz2, quiz3, quiz4,quiz5 );
// 등록실행
for(Quiz quiz : quizList){
// 등록실행
service.insertQuiz(quiz);
}
System.out.println("--- 등록처리 완료 ---");
}
/* 모든 데이터 취득 */
private void showList(){
System.out.println("-- 모든 데이터 취득 개시 -- ");
// 레파지토리를 이용해 모든 데이터를 취득해 결과를 반환
Iterable<Quiz> quizzes = service.selectAll();
for(Quiz quiz : quizzes){
System.out.println(quiz);
}
System.out.println("--- 모든 데이터 취득 완료 ---");
}
private void showOne(){
System.out.println("--- 1건 취득 개시 ---");
// 레파지토리를 사용해 1건의 데이터를 취득해서 결과를 리턴(리턴값은Optional)
Optional<Quiz> quizOpt = service.selectOneByIQuiz( 1);
// 반환값이 있는지 확인
if(quizOpt.isPresent()){
System.out.println(quizOpt.get());
}else {
System.out.println("해당 데이터는 존재하지 않습니다.");
}
System.out.println(" --- 1건 취득 완료 ---");
}
/* 변경 처리 메소드 */
private void updateQuiz(){
System.out.println(" --- 변경 처리 개시 ---- ");
// 변경할 엔티티를 생성
Quiz quiz1 = new Quiz(1,"스프링은 프레임 워크 입니까? ", true, "변경 담당");
// 변경 처리
service.updateQuiz(quiz1);
// 변경결과 확인
System.out.println("변경된 데이터는 "+ quiz1+" 입니다.");
System.out.println("--- 변경 처리 완료 ---- ");
}
/* 삭체 처리 메소드 */
private void deleteQuiz(){
System.out.println("--- 삭제 처리 개시 --- ");
// 삭제 실행
service.deleteQuizById(2);
System.out.println("--- 삭제 완료 ---");
}
/* 랜덤으로 퀴즈를 취득해서 퀴즈의 정답/오답을 평가 */
private void doQuiz(){
System.out.println("--- 퀴즈 1건 취득 개시 ---- ");
// 레포지토리를 이용해서 1건의 데이터를 받기 (반환값을 Optional)
Optional<Quiz> quizOpt = service.selectOneRandomQuiz();
//반환값이 있는지 확인
if(quizOpt.isPresent()){
System.out.println(quizOpt.get());
}else{
System.out.println("해당 데이터는 존재하지 않습니다.");
}
System.out.println("--- 퀴즈 1건 취득 완료 ---");
// 답평가
Boolean myAnswer = false;
Integer id = quizOpt.get().getId();
if(service.checkQuiz(id, myAnswer)){
System.out.println("정답입니다!!! ") ;
}else {
System.out.println("오답입니다!!!");
}
}
}