프로그램/JAVA

[JPA] Spring boot JPA 연결 및 사용하기

프뚜 2022. 10. 30. 10:00
728x90
반응형
SMALL

안녕하세요!

프뚜(프로그래머 뚜)입니다!


[개발 환경]

 - OS: windows 10 64bit

 - DB: PostgreSQL 15.0


1. gradle 추가하기

// 2022.10.28[프뚜]: postgreSQL
implementation 'org.postgresql:postgresql:42.5.0'

// 2022.10.28[프뚜]: log4jdbc-log4j2
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1'

// 2022.10.28[프뚜]: JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

// 2022.10.28[프뚜]: lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'


2. application.properties 추가하기

# 2022.10.28[프뚜]: Datasource Configuration
spring.datasource.hikari.maximum-pool-size=4
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/tistory
spring.datasource.username=ssjeong
spring.datasource.password=ssjeong

# 2022.10.28[프뚜]: JPA
spring.jpa.hibernate.dialect = org.hibernate.dialect.PostgreSQL15Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql = true
spring.jpa.show-sql = true

PostgreSQL 연동 관련된 내용은 링크를 통해 자세하게 확인해보실 수 있습니다.


3. Entity 생성하기

@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Member {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    private String userId;

    private String password;

}

Entity는 DB의 TABLE과 같다라고 생각하면 접근하기 쉽습니다.

@GeneratedValue(strategy = GenerationType.AUTO)는 primiry Key에 맞춰서 autoIncrement 옵션입니다.


4. Repository 생성하기

public interface MemberRepository extends JpaRepository<Member, Integer> {

}

JpaRepository의 제네릭(<>) 안에 들어가는 값은 Table이 될 Class(Member), Primiry Key(id)의 Type입니다.


5. JPA 활용하기

@SpringBootTest
class PetooApplicationTests {

	@Autowired
	private MemberRepository memberRepository;

	@Test
	void save() {
		memberRepository.save(Member.builder()
						.userId("ssjeong")
						.password("ssjeong")
						.build());
	}

	@Test
	void select() {
		Member member = memberRepository.findById(1).get();
		System.out.println("[프뚜] > " + member);
	}

}

CRUD를 할 수 있는 Repository를 Autowired 합니다.

 

저장하는 코드를 실행하면

 

table이 없기 때문에 create table 행위가 일어나고,

 

값이 저장됨을 확인할 수 있습니다.

 

select문을 실행하면

 


JPA를 연결하고 간단하게 저장, 조회를 해보았습니다.

728x90
반응형
LIST