스프링 데이터 JDBC 프로그램 생성 - 프로젝트 생성
📌 프로젝트 생성
스프링 데이터 JDBC 프로그램 생성 - application.properties
📌 application.properties
: 스프링 부트 프로젝트의 환경 설정용 파일.
postgres 데이터베이스 접속에 관련된 설정함.
spring.datasource.driver-class-name | JDBC 드라이버의 클래스명 지정. |
spring.datasource.url | 데이터베이스의 접속 URL 설정. |
spring.datasource.username | 데이터베이스에 접속하는 유저명 설정. |
spring.datasource.password | 데이터베이스에 접속하는 패스워드 설정. |
spring.datasource.diver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=password
스프링 데이터 JDBC 프로그램 생성 - 엔티티 생성
📌 엔티티 생성
① src/main/java 우클릭, 'com.example.demo.entity' 패키지 생성.
② com.example.demo.entity 폴더 우클릭, 'Member' 자바 클래스 생성.
③ 코드 작성.
package com.example.demo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Member {
@Id
private Integer id;
private String name;
}
📌 Lombok에서 제공하는 어노테이션.
@Data | 전 필드에 대해 getter, setter로 액세스 가능. hashCode(), equals(), toString() 자동 생성됨. |
@NoArgsConstructor | 기본 생성자 자동 생성됨. |
@AllArgsConstructor | 전 필드에 대해 초기값을 인수로 가지는 생성자가 자동 생성됨. |
📌 기본 키(Primary Key)에 해당하는 필드에 @Id 어노테이션 부여.
스프링 데이터 JDBC 프로그램 생성 - 리포지토리 생성
📌 리포지토리 생성
① src/main/java 우클릭, 'com.example.demo.repository' 패키지 생성.
② com.example.demo.repository폴더 우클릭, 'MemberCrudRepository' 자바 인터페이스 생성.
③ 코드 작성.
package com.example.demo.repository;
import com.example.demo.entity.Member;
import org.springframework.data.repository.CrudRepository;
public interface MemberCrudRepository extends CrudRepository<Member, Integer> {
}
📌 CrudRepository의 CRUD 메서드
반환형 | 메서드 | 개요 |
long | count() | 취득한 엔티티 수 반환. |
void | delete(Member entity) | 지정한 엔티티 삭제. |
void | deleteAll() | 리포지토리에서 관리하는 모든 엔티티 삭제. |
void | deleteAll(Iterable entities) | 지정한 복수의 엔티티 삭제. |
void | deleteAll(Integer id) | 지정한 ID에 해당하는 엔티티 삭제. |
boolean | existById(Integer id) | 지정한 ID에 해당하는 엔티티 존재 여부 확인. |
Iterable | findAll() | 모든 엔티티 반환. |
iterable | findAllById(Iterable ids) | 지정한 복수의 ID에 해당하는 엔티티 반환. |
Optional | findById(Integer id) | 지정한 ID에 해당하는 엔티티 반환. |
Member | save(Member entity) | 지정한 엔티티 저장. |
Iterable | saveAll(Iterable entities) | 지정한 모든 엔티티 저장. |
💡 @Id 어노테이션이 부연된 필드 값이 null인 경우, save 메서드는 INSERT를 실행함.
스프링 데이터 JDBC 프로그램 생성 - 클래스 생성
📌 리포지토리 생성
① 코드 작성.
package com.example.SpringdataDBCSample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.example.demo.repository.MemberCrudRepository;
import com.example.demo.entity.Member;
@SpringBootApplication(scanBasePackages = {"com.example.demo.repository.MemberCrudRepository"})
public class SpringdataDbcSampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringdataDbcSampleApplication.class, args)
.getBean(SpringdataDbcSampleApplication.class).execute();
}
@Autowired
MemberCrudRepository repository;
private void execute() {
executeInsert();
executeSelect();
}
private void executeInsert() {
Member member = new Member(null, "jimin");
member = repository.save(member);
System.out.println("Insert : " + member);
}
private void executeSelect() {
System.out.println("--- All Data ---");
Iterable<Member> members = repository.findAll();
for(Member member : members) {
System.out.println(member);
}
}
}
'Spring' 카테고리의 다른 글
[Spring] 스프링 MVC (0) | 2022.11.15 |
---|---|
[Spring] MVC 모델 (0) | 2022.11.15 |
[Spring] 스프링 데이터 JDBC (0) | 2022.11.05 |
[Spring] SQL과 CRUD, 엔티티, 리포지토리 (0) | 2022.11.05 |
[Spring] 데이터베이스와 테이블 (0) | 2022.11.05 |
댓글