허원철의 개발 블로그

Spring Boot - Data JPA 본문

web

Spring Boot - Data JPA

허원철 2016. 12. 4. 19:46

이번 글은 spring boot를 이용한 JPA에 대한 글 입니다.


1. Gradle 추가

2. Properties 추가

3. Package 구성

4. Model 추가

5. Repository 추가

6. Controller 추가




1. Gradle 추가

dependencies {
	compile('org.springframework.boot:spring-boot-starter-web')
        // jpa 추가 
	compile('org.springframework.boot:spring-boot-starter-data-jpa')
        // getter/setter 추가
	compile('org.projectlombok:lombok:1.16.10')
        // mysql 추가
	compile('mysql:mysql-connector-java:6.0.4')
	testCompile('org.springframework.boot:spring-boot-starter-test')
}


2. Properties 추가

# db connect setting
spring.datasource.url=jdbc:mysql://{ ip }:{port}/{database}?serverTimezone=UTC
spring.datasource.username={user}
spring.datasource.password={password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# jpa setting
spring.jpa.hibernate.ddl-auto=create
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true

- spring.jpa.hibernate.ddl-auto=create 를 하게되면 entity 로 테이블을 만듭니다.


※ mysql 6.0 변경 사항
1) serverTimezone 이라는것을 맞춰야 해서 serverTimezone=UTC 를 추가 해줍니다.
2) driverClassName 이 com.mysql.jdbc.Driver 에서 com.mysql.cj.jdbc.Driver 으로 변경되었습니다.

3. Package 구성
- spring boot 레퍼런스 문서에 적혀 있는데로 패키지를 구분해줍니다.
com
 +- example
          +- myproject
                    +- Application.java
                    |
                    +- domain
                    |       +- Customer.java
                    |       +- CustomerRepository.java
                    |
                    +- service
                    |       +- CustomerService.java
                    |
                    +- web
                            +- CustomerController.java


4. Model 추가



- Entity 에 구조를 설계할 수 있습니다.
 Lombok 과 JPA 어노테이션 조합으로 테이블을 구성할 수 있습니다.
- properties 에 spring.jpa.hibernate.ddl-auto=create 라고 적혀 있다면 boot 실행과 함께 Entity 구조로 테이블이 구성됩니다.


5. Repository 추가

- repository 에는 Repository, CrudRepository, PagingAndSortingRepository 가 있습니다. 또한 인터페이스를 상속하기를 원하지 않는다면 @RepositoryDefinition 를 사용할 수 있습니다.



- 제네릭으로는 엔티티클래스, ID 순으로 넣으면 됩니다.
- 저렇게 선언한 것 만으로도 간단한 CRUD는 완성이 됩니다.


6. Controller 추가
  - controller 에서 repository를 가져와서 insert 와 id를 통한 조회에 대한 예시 코드입니다.



- postman 으로 insert



- postman 으로 select



'web' 카테고리의 다른 글

Spring Boot - Rest  (414) 2016.12.04
Spring Boot - Security OAuth2  (384) 2016.12.04
Spring Boot - Validator  (424) 2016.12.04
Spring Boot - Security  (388) 2016.12.04
Spring Boot - Base  (459) 2016.12.04
Comments