Spring
[스프링 프레임워크] 4. 데이터베이스 작업
yes_truly
2023. 10. 14. 01:33
728x90
1. 데이터베이스 생성
1) 데이터베이스란?
- 데이터를 보관하기 위한 상자
- 특정한 규칙을 적용해 데이터를 정리해서 보관
2) 관계형 데이터베이스란?(Relational Database)
- 데이터를 표 형식으로 표현, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터 베잇
- 표 = 테이블(Table)
- 테이블과 테이블 간의 관계 = 관계(Relationship)
2. 테이블 생성
1) 테이블이란?
- 데이터베이스 안에서 실제로 규칙을 가진 데이터가 저장되는 상자
- 이차원 표 형식으로 데이터를 정리해 저장
2) 레코드와 칼럼
- 레코드(record) : 테이블의 가로 행, 하나의 레코드는 한 건의 데이터
- 칼럼(column) : 테이블의 세로 열, 하나의 칼럼은 데이터의 각 요소
3) 제약 조건
테이블에 존재하는 데이터가 불일치 상태가 되지 않게 하는 규칙
- NOT NULL : 필수 입력
- UNIQUE : 중복값 허용하지 않음
- CHECK : 지정한 조건을 만족하지 않는 값의 입력 허용하지 않음
- PRIMARY KEY : 테이블 안에서 레코드를 식별하는 기본키 설정. NOT NULL과 UNIQUE가 같이 적용됨
- FOREIGN KEY : 관련된 테이블을 연결하는 설정, 외래키라고 함
- DEFAULT : 기본값 설정
3. 데이터 입력
1) SQL이란?(Structured Query Langauage)
- 데이터베이스를 조작하기 위한 언어
- CRUD(Create, Read, Update, Delete)
- Create, 생성 → 데이터를 등록 → INSERT INTO 테이블명 (칼럼명...) VALUES (값...);
- Read, 읽기 → 데이터를 참조 → SELECT 칼럼명 FROM 테이블명;
- Update, 갱신 → 데이터를 갱신 → UPDATE 테이블명 SET 칼럼명 = 값 WHERE 갱신할 레코드를 특정하는 조건;
- Delete, 삭제 → 데이터를 삭제 → DELETE FROM 테이블명 WHERE 삭제할 레코드를 특정하는 조건;
4. 엔티티와 리포지토리 알아보기
1) 엔티티란?
- 데이터를 담아두는 객체. 데이터베이스 테이블의 한 레코드에 대응하는 객체
- 사용 시 주의사항
- 클래스명 : 대응하는 데이터베이스의 테이블 명으로
- 데이터베이스에 값 넘겨주기 : 엔티티에 값을 넣어서 넘겨줌
- 데이터베이스에서 값 가져오기 : 값을 엔티티에 넣어 가져옴
2) 리포지토리란?
- 데이터베이스를 조작하는 클래스
- 반드시 인터페이스를 정의하고 구현해야 함
- 리포지토리 인터페이스의 필드에 리포지토리 구현 클래스를 DI해 특정 구현에 의존하는 것을 피할 수 있음
5. 스프링 데이터 JDBC 사용해보기
1) O/R 매퍼란?
- 애플리케이션에서 사용하는 객체와 관계형 데이터베이스의 데이터를 매핑하는 것
- 미리 설정된 객체와 관계형 데이터베이스 간의 대응 관계 정보를 바탕으로 인터페이스의 데이터에 대응하는 테이블에 내보내거나 데이터베이스에서 값을 읽어 인터페이스에 대입하는 작업을 자동으로 실행
2) 스프링 데이터 JDBC란?
- 스프링 데이터 JDBC = O/R 매퍼
- 스프링 데이터가 제공하는 CrudRepository를 상속해 자동으로 CRUD를 지원하는 메소드를 사용할 수 있음
3) 엔티티 생성 시 사용하는 Lombok annotation
- @Data : 전 필드에 대해 getter/setter로 액세스할 수 있음. hashCode(), equals(), toString()도 자동 생성됨
- @NoArgsConstructor : 기본 생성자 자동 생성
- @AllArgsConstructor : 전 필드에 대해 초기화 값을 인수로 가지는 생성자 자동 생성
728x90