✍ 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 기준 내림차순으로 정렬된다.
'📝 TIL' 카테고리의 다른 글
[TIL] MySQL, DBeaver, SELECT, WHERE, ORDER BY (0) | 2022.05.31 |
---|---|
[TIL] JSP, 톰캣, 서블릿 (0) | 2022.05.30 |
[TIL] Java Enum, MySQL 개발 환경 설정, JDBC (0) | 2022.05.26 |
[TIL] Java ArrayList, HashSet, HashMap, Generic (0) | 2022.05.24 |
[TIL] Java 피카츄 게임, 웹 서비스 프로그램 (0) | 2022.05.23 |