이 포스팅에서 작성하는 내용은 자바 ORM 표준 JPA 프로그래밍 (김영한 지음) 에서 발췌하였습니다.
1. DataBase 설치
- H2 DataBase 사용
Oracle or MySQL 대신 H2 DataBase를 사용하는 이유????
- 실습에 최적화된 DB
- 가벼움(1.5MB)
- 웹용 쿼리 툴 제공
- Oracle, MySQL DB 시뮬레이션 가능
- Sequence, Auto Increment 기능 지원
설치 방법
1) 아래의 페이지에서 자신의 플랫폼에 맞게 다운로드 진행.
2) 설치 후, 윈도우 검색 창에 h2라고 입력하여 H2 console 실행 or 주소창에 127.0.0.1:8082 입력
(필자는 윈도우 10 사용중)
3) 연결 클릭
4) 체크된 영역에서 쿼리를 날릴 수 있다.
2. Java Project 설치
- IDE : IntelliJ Community
- Maven Build
1) java 라이브러리, 빌드 관리
2) maven repository로 부터 라이브러리 자동 다운로드 및 의존성 관리
3) Java 8버전 이상에서 사용하는 걸 권장
(cmd에서 'java -version' 입력 시 자바 버전 확인 가능. 명령을 찾을 수 없다고 뜨는 경우 java가 설치되지 않았거나 환경변수를 제대로 잡지 못한 경우임)
→ 아래의 dependency를 추가
<dependencies>
<!-- h2DataBase -->
<!-- version은 pc에 설치한 h2데이터베이스와 맞춰줘야함!! -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.210</version>
</dependency>
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.3.10.Final</version>
</dependency>
</dependencies>
groupId : h2database
→ h2database와 연동하기 위해 추가
groupId : org.hibernate / artifactId : hibernate-entitymanger
→ hibernate core, hibernate 기반 jpa 등 사용하기 위해 추가
(만일 pom.xml에서 빨간 글씨가 나오는 경우, 우측 상단의 maven reload 버튼을 클릭하여 해결할 수 있다.)
3. JPA Setting
- /META-INF/persistence.xml
<!-- persistence.xml Sample -->
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<!-- JPA 이름. 여기선 hello로 설정 -->
<persistence-unit name="hello">
<properties>
<!-- 필수 속성 -->
<!-- DB 접속 정보 설정 -->
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
<!-- DB 방언 설정 -->
<!-- 각 특정 데이터베이스마다 다른 문법을 알아서 통역? 해주는 기능이라고 볼 수 있음 -->
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<!-- 생성된 쿼리 보여주기 -->
<property name="hibernate.show_sql" value="true"/>
<!-- 생성된 쿼리를 보여줄 때 가독성 좋게 보여줌 -->
<!-- show_sql이 false라면 이 옵션은 무의미해짐 -->
<property name="hibernate.format_sql" value="true"/>
<!-- 추가적인 주석을 표시 -->
<property name="hibernate.use_sql_comments" value="true"/>
<!--<property name="hibernate.hbm2ddl.auto" value="create" />-->
</properties>
</persistence-unit>
</persistence>
- DB 방언 : SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 언어? 기능? 이라고 볼 수 있다.
각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 차이가 난다.
ex 1) 가변 문자 : MySQL - VARCHAR / Oracle - VARCHAR2
ex 2) 문자열 자르는 함수 : SQL표준 - SUBSTRING() / Oracle - SUBSTR()
ex 3) 페이징 : MySQL - LIMIT / Oracle - ROWNUM
'BE > JPA' 카테고리의 다른 글
[JPA] 6. 영속성 컨텍스트란? (0) | 2022.04.11 |
---|---|
[JPA] 5. JPA에서 리스트를 조회해보자 (0) | 2022.04.05 |
[JPA] 4. JPA 맛보기 (0) | 2022.03.31 |
[JPA] 2. Java Persistence API 란 (0) | 2022.03.18 |
[JPA] 1. 왜 JPA를 공부해야 할까? (0) | 2022.03.16 |