h2/bin/h2.sh
요즘에는 Gradle을 사용하는 추세로 나아가지만,
아직까지는 메이븐을 많이 사용하기 때문에 Maven 사용
의존성 추가
이것도 추가해야한다.
JPA는 특정 데이터베이스에 종속적이지 않음
각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름
h2면 H2Dialet,
MySQl이면, MySQL5InnoDBDialect
오라클이면, Oracle10gDialect
등등 하이버네이트는 40가지 이상의 데이터베이스 방언 지원
엔티티 매니저를 가져오고 트렌젝션을 실행한 뒤, 멤버를 새로 저장하고 트렌젝션 커밋을 하면 멤버가 저장된다.
hibernate.show_sql
: SQL 쿼리를 보여준다.
hibernate.format_sql
: 이쁘게 포맷을 해서 보여준다.
hibernate.use_sql_comments
: /* */ 주석을 이용해 왜 이렇게 나왔는지 보여줌.
추가로
@Table
: 테이블 이름 설정할 수 있다.
@Column
: 컬럼 이름 설정할 수 있다.
이렇게 try-catch문으로 데이터 저장을 실패했을시, 또는 커밋을 실패햇을 시, 데이터를 롤백하도록 만들어야 한다.
그런데 스프링은 위 과정을 알아서 다 해줌.
SQL에서 select from where
를 이용해 멤버를 찾는것을 확인할 수 있다.
set을 통해 내용을 바꾸면, update
쿼리를 날린것을 볼 수 있다.
주석에 JPQL이 그대로 들어가있고, 멤버 객체 엔티티를 사용하는 것을 확인할 수 있다.
페이징을 해보자.
SQL문이 이와 같이 나온 것을 확인할 수 있다.
정말 좋은점은 여기서 데이터베이스를 오라클로 바꾸기만 하면,
이렇게 오라클 문장으로 바꿔준다. 이걸 보니 JPQL을 배워야 한다는 것을 알게 되었다.
안 쓸 수가 없다.
이와 같이 데이터베이스에 데이터를 검색하고, 조건을 좀 더 디테일하게 사용하기 위해 JPQL을 사용한다.