[JPA] 3. JPA 프로젝트 세팅

2022. 3. 26. 03:23· BE/JPA
목차
  1. 1. DataBase 설치
  2. 2. Java Project 설치
  3. 3. JPA Setting
반응형

자바 ORM 표준 JPA 프로그래밍

 

이 포스팅에서 작성하는 내용은 자바 ORM 표준 JPA 프로그래밍 (김영한 지음) 에서 발췌하였습니다.

 

 

1. DataBase 설치

- H2 DataBase 사용

 

Oracle or MySQL 대신 H2 DataBase를 사용하는 이유????

- 실습에 최적화된 DB

- 가벼움(1.5MB)

- 웹용 쿼리 툴 제공

- Oracle, MySQL DB 시뮬레이션 가능

- Sequence, Auto Increment 기능 지원

 

 

설치 방법 

1) 아래의 페이지에서 자신의 플랫폼에 맞게 다운로드 진행.

https://www.h2database.com/ 

 

H2 Database Engine (redirect)

H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo

www.h2database.com

 

 

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 

src/main/resource 안에 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
  1. 1. DataBase 설치
  2. 2. Java Project 설치
  3. 3. JPA Setting
'BE/JPA' 카테고리의 다른 글
  • [JPA] 5. JPA에서 리스트를 조회해보자
  • [JPA] 4. JPA 맛보기
  • [JPA] 2. Java Persistence API 란
  • [JPA] 1. 왜 JPA를 공부해야 할까?
멍목
멍목
개발 관련 새롭게 알게 된 지식이나 좋은 정보들을 메모하는 공간입니다.
반응형
멍목
김멍목의 개발블로그
멍목
전체
오늘
어제
  • 분류 전체보기 (514)
    • BE (190)
      • Spring (21)
      • Java (141)
      • Kotlin (6)
      • JPA (22)
    • FE (33)
      • Javascript (16)
      • Typescript (0)
      • React (5)
      • Vue.js (9)
      • JSP & JSTL (3)
    • DB (32)
      • Oracle (22)
      • MongoDB (10)
    • Algorithm (195)
    • Linux (8)
    • Git (6)
    • etc (42)
    • ---------------------------.. (0)
    • 회계 (4)
      • 전산회계 2급 (4)
    • 잡동사니 (2)

블로그 메뉴

  • 홈
  • 관리

공지사항

인기 글

태그

  • 이펙티브 자바
  • 코테 공부
  • Effective Java
  • MongoDB 기초부터 실무까지
  • 자바 공부
  • 자기 공부
  • 자바 개발자를 위한 코틀린 입문
  • MongoDB with Node.js
  • Oracle
  • 자기공부
  • 자기 개발
  • 자기개발
  • JPA 공부
  • 이펙티브자바
  • 알고리즘공부
  • 코틀린
  • JPA
  • 프로젝트로 배우는 Vue.js 3
  • java 8
  • MongoDB 공부
  • 더 자바 애플리케이션을 테스트하는 다양한 방법
  • 자바공부
  • 전산회계 2급 준비
  • vue3 공부
  • 더 자바 Java 8
  • Java to Kotlin
  • 자바 테스팅 프레임워크
  • 코테공부
  • 알고리즘 공부
  • junit5

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
멍목
[JPA] 3. JPA 프로젝트 세팅
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.