일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- load balancing
- Security
- apache
- assertj
- 페이징
- 권한
- tomcat
- oauth2
- 클린코드
- jvm
- 페이스북
- 비동기
- java
- Refactoring
- 리팩토링
- 스프링부트
- clean code
- Spring
- gdg
- g1
- JPA
- OAuth
- spring boot
- 스프링
- JWT
- 시큐리티
- 스프링 부트
- GC
- RabbitMQ
- Producer
Archives
- Today
- Total
허원철의 개발 블로그
Spring Boot - Data JPA 본문
이번 글은 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 구성
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