📝 TIL

[TIL] Java 주소록, 상품관리, 호텔관리 시스템

오늘 ONEUL 2022. 5. 27. 20:55

✍ Today I Learned

 

[주소록 관리 시스템]

SelectOne

mysql> select * from address where name = ‘이름’;
  • pk(=primary key 빈 값이 없고 중복되지 않는 키)로 검색하지 않는 경우 출력 형태가 단일 객체 아님을 주의하자.
  • where은 조건절로 테이블 내에 해당하는 이름을 검색한다.
  • 입력받은 이름을 데이터베이스로 넘겨서 해당하는 데이터를 리턴 받는다.
  • list는 여러 개의 데이터를 리턴 받고, detail은 한 개의 데이터만 리턴 받는다.

 

Delete

mysql> delete from address where name = ‘이름’;
  • 입력받은 이름을 데이터베이스로 넘겨서 해당 데이터를 삭제한 후, 결과를 true or false로 리턴 받는다.

 

Update

mysql> update address set tel = '전화번호', age = 나이 where naem = '이름';
  • 이름, 전화번호, 나이를 입력받고 데이터 베이스로 넘겨서 해당하는 이름의 데이터를 수정한 후, 결과를 true or false로 리턴 받는다.
  • pk는 수정할 수 있을까? 할 수는 있지만 유일한 값이기 때문에 특수한 경우를 제외하고는 수정하지 않는다.

 

 

[상품관리 시스템]

  • 주소록 관리 시스템과 큰 틀은 비슷하고, 컨트롤러와 DAO를 이어주는 서비스 클래스를 추가하여 구현한다.
  • 스키마(schema)란? 데이터베이스에서 자료의 구조, 표현 방법, 자료 간의 관계 등을 정의한 것을 의미한다.
  • sql 확장자로 스키마 파일을 생성하여 데이터를 정의한다.
  • VO(value object)란? 특정 값을 나타내는 객체를 의미한다. 스키마에 정의해둔 데이터를 바탕으로 VO class 파일을 생성하여 관련 값들의 생성자 메서드와 getter, setter를 만들어주었다. 이때, 앞으로 필요한 데이터가 무엇인지 잘 생각하고 생성자 메서드 오버 라이딩에 신경 쓰자.
  • DAO(data access object)란? 실질적으로 DB에 접근하는 객체를 의미한다. DB를 사용해 데이터를 조회하거나, 조작하는 기능을 전담한다.
  • select 쿼리문 뒤쪽으로 order by [column] desc를 추가하면 column 기준 내림차순으로 정렬된다.