무턱대고 구글링 블로그로 검색해서 맨땅에 헤딩처럼 작업해보기보다는
document 나 명세를 살펴보며 (비록 영어라 두통이 오더라도 😂)
그 기능을 개발한 사람의 생각도 들여다보며 공부하는 걸 시도해보는 중이다
앱개발 때도 느꼈는데
많은 사람들이 구글링이 개발의 답이라고 하지만
버전이 업그레이드 됨에 따라 맞지않은 옛날 글, 또는 잘못된 글도 너무 많다.
그래서 어느정도 앱을 알게 된 이후에 나도 문서를 살펴보며
진짜 그 기능에 포함되어있는 메소드들을 살펴보곤 했었다.
아직 봄이 안온 스프링 개발자지만, 얼른 따뜻한 봄을 맞이하기 위해
열심히 공부를 해본다!
일단, h2 데이터베이스와 JPA 를 공부하는데
대부분 maven 으로 되어있길래
gradle 로 한번 세팅해보려고한다.
http://www.h2database.com/html/features.html#connection_modes
Features
Features Feature List H2 in Use Connection Modes Database URL Overview Connecting to an Embedded (Local) Database In-Memory Databases Database Files Encryption Database File Locking Opening a Database Only if it Already Exists Closing a Database Ignore
www.h2database.com
항상 처음은 잘 알겠다 그 이후가 문제지
ㅋㅋㅋㅋㅋ
h2.sh 를 열고, 해당 정보로 프로젝트를 시작한다
application.properties
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create-drop
hibernate.hbm2ddl.auto 옵션 설명
create : 기존 테이블 삭제 후 다시 생성한다 (DROP + CREATE)
create-drop : create와 같으나 종료시점에 테이블 DROP
update : 변경분만 반영(운영DB에는 사용하면 안됨) - 컬럼 추가는 가능 / 제거는 안됨
validate : 엔티티와 테이블이 정상 매핑되었는지만 확인
none : 사용하지 않음
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Member {
@Id @GeneratedValue
private Long Id;
private String email;
private String password;
private String name;
}
간단하게 생성완료
- JPA 구동방식
Persistence 라는 클래스를 이용하여 설정정보를 조회 후
EntityManagerFactory 를 이용하여 엔티티매니저를 관리
객체 매핑 @Entity
pk 설정 → @Id
entity manager factory 는 하나만 생성해서 전체에 공유
entity manager 는 쓰레드간에 공유하면 안됨. 사용 후 버려야함
JPA 모든 데이터 변경은 트랜잭션 안에서 실행됨
'Web > spring' 카테고리의 다른 글
[Spring Entity] Entity 컬럼 안에 리스트 넣는 방법 두가지 (0) | 2022.12.21 |
---|---|
[Spring setting] application.properties 자주 쓰는 설정 (0) | 2022.12.20 |
[Spring Security] WebSecurityConfigurerAdapter deprtecate (0) | 2022.12.14 |
[Spring Error] Web server failed to start. Port 8080 was already in use. (0) | 2022.12.12 |
[MAC m1] 개발환경 세팅 / JAVA 11 설치 / 환경변수 설정 (0) | 2022.12.01 |