0828 | MyBatis / 예외처리
0524 | Maven (1) // 메이븐 개념, build lifecycle
[1] 메이븐이란? : 빌드 과정 (프로젝트 생성-라이브러리설정-코드작업-컴파일-테스트-패키지만들기-배포-레포팅까지) 에서 반복되는 일들을 효율적으로 처리할 수 있도록 도와주는 빌드 툴. : 빌
ala-nueva.tistory.com
✅ MyBatis란?
: 영구적인 데이터를 저장하는걸 도와주는 프레임워크
MyBatis is a first class persistence framework with support for custom SQL,tored procedures and advanced mappings.
mybatis – MyBatis 3 | Introduction
What is MyBatis? MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use
mybatis.org
자바가 제공하는 프레임웍인 JDBC를 사용하는게 아니라, 영구적인 프레임웍인 mybatis를 배워야 하는 이유?
👉 JDBC코드를 거의 다 생략하게 해주고 최소한의 코드로 진행할 수 있게 해줌
MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results.
👉 xml, annotation을 이용해서 간단하게 매핑 가능
MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records
✅ Mybatis설정하기
👉 이전에는 프로젝트마다 라이브러리가 있었지만 maven을 사용하는 지금은 라이브러리를 서로 공유함 (C:m2.repository에 로컬에 받아놓은 라이브러리가 있음)
👉 이젠 빌드작업을 maven이 하기 때문에 어떤 ide든 종속되지않고 진행 가능!
✅ maven 프로젝트에 서비스 repository생성하기
목록페이지 요청: 초기데이터를 repository로부터 얻어와야 한다
메뉴목록 /menu/list 1. 사용자 입력 처리 //SQL + 업무 1-1) 데이터베이스를 이용해서 데이터를 가져오기 >> 별도 서비스 계층으로 만들어서 다른 개체(repository)에게 맡김 ▶ repository.get(); // repository에서 들고오기 2. 사용자 출력 처리 (웹 문서를 만드는 일) |
public class App {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
MenuRepository repository = new MenuRepository();
// repository.메뉴줘봐 -- 사용자입장 (메인함수) 에서 쓰기
// repository.getMenuList(); -- 메뉴 저장소에게 메뉴를 달라고 말하는건 조금 이상
// repository.findAll(); -- get대신 find로 용어가 바뀜. 찾아달라는 뜻
// repository.findById(id); -- id 를 찾아달라.
repository.findAll();
}
}
👉 앞으로는 repository를 따로 만들어서 데이터베이스를 가져오도록 부탁하게 된다!
#️⃣ maven을 사용하면서 알아야 할 것들
1.예외처리
2.컬렉션
3.어노테이션
✅ 예외처리
예외처리: 입력에 문제가 있다면 안내 문구를 띄워주고 프로그램을 이어갈지 아닐지를 판단하게 한다
#️⃣ 예외 처리 안하고 넘길시 흐름도
👇
#️⃣ 예외처리가 된 경우 1 - try~catch문으로 처리
#️⃣ 예외처리가 된 경우 2 - try~catch~finally문으로 처리
#️⃣ 예외 발생시 getMessage로 전달할 메세지 설정하기
#️⃣ 예외처리를 하지 않는다면?
런타임 에러로 올라가서 프로그램이 그냥 꺼져버리는 사태 발생
사용자에게 신뢰도가 떨어짐 (제품 완성도, 보안 등)