티스토리 뷰
pgAdmin 4 를 이용해 테이블을 생성할 수 있다.
Servers -> PostgreSQL -> Database -> postgres -> Schemas -> Public -> Table 에 우클릭후 생성
제약조건 설명
제약 조건 | 개요 |
NOT NULL | NULL 입력을 허용하지 않는다(필수 입력) |
UNIQUE | 중복값 입력을 허용하지 않는다 |
CHECK | 지정한 조건에 만족하지 않는 값을 허용하지 않는다. |
PRIMARY KEY | 테이블 안에서 레코드를 식별하는 기본키를 설정. 기본키는 NOT NULL 과 UNIQUE 가 함께 적용. |
FOREIGN KEY | 관련된 테이블을 연결하는 설정. 외부키라고도 한다 |
DEFAULT | 칼럼의 초기값을 설정 |
DML
명령어 | 개요 | 구문 |
INSERT | 데이터를 등록 | INSERT INTO 테이블명 (칼럼명, 칼럼명...) VALUE(값, 값, ...); |
SELECT | 데이터를 참조 | SELECT 칼럼명, 칼럼명, ... FROM 테이블명; |
UPDATE | 데이터를 갱신 | UPDATE 테이블명 SET 칼럼명 = 값 WHERE 갱신할 레코드를 특정할 조건; (WHERE 로 조건을 지정하지 않으면 모든 레코드가 대상이 된다) |
DELETE | 데이터를 삭제 | DELETE FROM 테이블명 WHERE 삭제할 레코드를 특정하는 조건; (WHERE 로 조건을 지정하지 않으면 모든 레코드가 대상이 된다) |
원하는 테이블에서 우클릭후 Query Tool 을 선택하면 Query Editor 가 표시된다
엔티티와 레포지토리
구분 | 엔티티 | 레포지토리 |
설명 | 데이터를 담아두는 객체 | 데이터를 조작하는 클래스 |
규칙 | 클래스명은 대응하는 데이터베이스의 테이블명으로 한다 | 생성시에 반드시 인터페이스를 정의하고 구현 |
구성 | 필드값에는 테이블의 column 값 메서드는 getter 와 setter 로 이루어져있다 |
SQL문으로 구성 |
역할 | 데이터베이스에 값을 넘겨준다 데이터베이스에서 넘겨받은 값을 저장한다 |
데이터베이스를 조작한다 |
O/R 매퍼란
단순히 자바에서 사용하는 O(Object) : 객체와 R(Relational) : 관계형 데이터베이스의 데이터를 매핑하는 것이다
스프링 데이터 JDBC 프로그램 생성하는 방법
의존성에 Spring Data JDBC, Postgre SQL Driver 추가하면 Spring JDBC를 사용할 수 있다
application.properties 에 설정을 추가해야한다.
항목 | 설명 |
spring.datasource.driver-class-name | JDBC 드라이버의 클래스명을 지정 |
spring.datasource.url | 데이터베이스의 접속 URL 을 설정 |
spring.datasource.username | 데이터베이스에 접속하는 유저명을 설정 |
spring.datasource.password | 데이터베이스에 접속하는 패스워드를 설정 |
엔티티 생성하는 방법
엔티티에 사용되는 어노테이션 설명
어노테이션 | 설명 |
@Data | 클래스에 부여하는 것으로 전 필드에 getter/setter 로 액세스 할 수 있다 hashCode(), equals(), toString() 도 자동 생성된다 |
@NoArgsConstructor | 클래스에 부여하는 것으로, 기본 생성자가 자동 생성된다. |
@AllArgsConstructor | 클래스에 부여하는 것으로 전 필드에 대한 초기화 값을 인수로 가지는 생성자가 자동 생성된다. |
@Id | 기본키에 해당하는 필드를 지정한다 |
레포지터리 생성방법
레포지터리는 반드시 인터페이스로 선언해준다
레포지터리 인터페이스를 만든 후에 CrudRepository<인수타입, 기본키 타입> 을 지정한다.
CrudRepository 를 상속하면 안에서 메서드를 작성하지 않아도 사용할 수 있다.
CrudRepository 의 CRUD 메서드
반환형 | 메서드 | 개요 |
long | count () | 가져온 엔티티의 개수 |
void | delete (Member entity) | 지정한 엔티티를 삭제 |
void | deleteAll () | 리포지토리에서 관리하는 모든 엔티티를 삭제 |
void | deleteAll (Iterable entites) | 지정한 복수의 엔티티를 삭제 |
void | deleteById (Integer id) | 지정한 ID 에 해당하는 엔티티를 삭제 |
boolean | existsById (Integer id) | 지정한 ID 에 해당하는 엔티티의 존재 여부를 확인 |
Iterable | findAll () | 모든 엔티티를 반환 |
Iterable | findAllById (Iterable ids) | 지정한 복수의 ID에 해당하는 엔티티를 반환 |
Optional | findById (Integer id) | 지정한 ID에 해당하는 엔티티를 반환 |
Member | save (Member entity) | 지정한 엔티티를 저장 |
Iterable | saveAll (Iterable entities) | 지정한 모든 엔티티를 저장 |
'스프링프레임워크' 카테고리의 다른 글
템플릿 엔진 (0) | 2025.03.01 |
---|---|
MVC 모델이란 (1) | 2025.02.28 |
Spring Initializr (0) | 2025.02.27 |
메타 어노테이션 (0) | 2025.02.27 |
스프링 프레임워크에서의 AOP(관점 지향 프로그래밍) (0) | 2025.02.27 |