코딩기록 저장소 🐕/스스로 프로젝트와 연습

프로젝트(SpringBoot)에 JPA적용해보기😌

kimkongmom 2024. 5. 6. 14:34

 

 

 

프로젝트를 jpa와 mysql을 사용해서 해보려고 합니다!

 

1. 아래 URL로 들어가 springboot프로젝트를 생성해줍니다!

https://start.spring.io/

 

  • Gradle - Groovy
  • Java
  • 3.2.5
  • Group: study(원하는대로)
  • Artifact: jpa(원하는대로)
  • jar
  • jdk17

Dependencies

  • springweb
  • lombok
  • mysql driver
  • jpa
  • thymeleaf

요정도 추가해줬습니다.

 

GENERATE를 클릭하면 다운로드가 되면 압축을 풀고 실행을 시켜줍니다!

 

2. build.gradle확인

 

제가 따로 추가한건 jasypt입니다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.mysql:mysql-connector-j'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5'
}

 

 

바로 실행이 되지 않고 db연결을 해줘야합니다.

 

3. application.yml(application.properties)

저는 yml을 쓰기때문에 요런식으로 설정을 해주었습니다. jasypt를 사용해 암호화도 해놓았습니다😉

(jasypt암호화 하는 방법은! https://kimsegong.tistory.com/239)

spring:
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
        show_sql: true
        format_sql: true
        use_sql_comments: true
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: ENC(ICj95aRhKSeWpTUe3JBp+dHqUt7XU8z1S6fRgHeFsRhMyzALnoMHrxPTd1k3J8thn2EHcuGP/6MbFuHsGkJv3cbx/HjpXoHWoSGk8Ga87F8Z2kvHlJ9pCJd8J2wi9hxu)
    username: ENC(wD4WtXb2cYZYnmCg/71BNQ==)
    password: ENC(Q7qtOXRekeXjEcUhAIy8wA==)

logging:
  level:
    org:
      hibernate:
        type:
          descriptor:
            sql: trace

# jasypt
jasypt:
  encryptor:
    bean: jasyptStringEncryptor

 

 

 

실행을 해보면 요런식으로 실행이 됩니다!

 

 

 

4. 간단하게 Entity를 생성해줍니다.

package start.jpa.domain;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
@Entity
@Table(name = "member")
public class Member {

    @Id
    @Column(name = "MEMBER_ID")
    private Long id;
    private String name;
    private int age;

}

 

 

생성 후 실행을 하게되면

 

 

 

생성된 테이블을 확인해보겠습니다

데이터는 없어서 Null이구요 테이블이 만들어진걸 확인할 수 있습니다!