JPA 프로그래밍(기본편) 1 - JPA 설정하기

JPA 프로그래밍(기본편) 1 - JPA 설정하기

의존성 추가하기

JPA를 사용하기 위해서 JPA를 구현한 hibernate 라이브러리를 사용한다. DB로는 메모리 DB인 H2 DataBase를 사용하도록 한다.

<!-- JPA 하이버네이트 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.3.10.Final</version>
</dependency>
<!-- H2 데이터베이스 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>

JPA Setting 하기

resource/META-INF/persistence.xml

JPA 표준 문법 설정

  • javax.persistence.jdbc.driver : 사용하고자 하는 DB 드라이버를 설정한다.
  • javax.persistence.jdbc.user : DB에 접근하기 위한 Username
  • javax.persistence.jdbc.password : DB에 접근하기 위한 Password
  • javax.persistence.jdbc.url : 접근하고자 하는 DataBase 경로

hibernate 전용 문법 설정

  • hibernate.dialect : DB에서 사용하는 SQL 문법을 적용한다.(DB마다 약간씩 차이가 존재)
  • hibernate.show_sql : hibernate에서 만들어주는 쿼리문을 볼 수 있도록 설정한다.
  • hibernate.format_sql : hibernate에서 보여주는 쿼리문을 보기 좋게 포멧팅 해준다.
  • hibernate.use_sql_comments : 어떤 객체를 사용해 작업을 진행하는지 확인할 수 있다.(디버깅시 용이)
  • hibernate.hbm2ddl.auto : 프로젝트가 실행될 때 자동으로 DDL을 생성할지에 대한 설정을 해준다.

persistence.xml

<?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">
<persistence-unit name="hello">
<properties>
<!-- 필수 속성 -->
<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"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<!-- 옵션 -->
<property name="hibernate.show_sql" value="true"/>
<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>

Share