-
#JPA-2 프로젝트 생성 및 기본 설정JPA 2021. 2. 2. 22:51
[출처] 인프런 김영한 강사님 -자바 ORM 표준 JPA 프로그래밍 기본
1. JPA 실습환경 구성
<dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <!--안에 core, javax.persistence-api libarary가 포함되있다. hibernate가 jpa interface를 가지고있다. --> <version>5.3.10.Final</version> </dependency> <!--db를 접근 할 수 있는 driver--> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version><!--다운받은 버전이랑 같아야한다.--> </dependency> </dependencies>
Spring boot와 사용할 hibernate version 맞추기
해당 경로를 통해 spring boot에서 쓰는 hibernate의 버전을 알 수 있다.
2.JPA 설정하기 - persistence.xml (만들어서 프로젝트에 넣기!)
• JPA 설정파일
• /MEMT-INF/persistence.xml 위치
• persistence-unit name으로 이름 지정
• javax.persistence로 시작 : JPA 표준속성
• hibernate로 시작 : hibernate 전용 속성
3.데이터베이스 방언
<?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"><!--JPA를 쓸건데 이름은 뭘쓸거야?--> <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"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!--hibernate.dialect DB방언<방언: SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능> -JPA는 특정 DB에 종속 X MYSQL쓰다가 ORACLE 써도 바껴 있어야함.--> <!--각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름--> <!--가변 문자: MySQL은 VARCHAR, Oracle은 VARCHAR2--> <!--문자열을 자르는 함수: SQL 표준은 SUBSTRING(), Oracle은 SUBSTR() --> <!--페이징: MySQL은 LIMIT , Oracle은 ROWNUM --> <!-- 옵션 --> <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>
• hibernate.dialect 속성에 지정
• H2 : org.hibernate.dialect.H2Dialect
• Oracle 10g : org.hibernate.dialect.Oracle10gDialect
• MySQL : org.hibernate.dialect.MySQL5InnoDBDialect
• 하이버네이트는 40가지 이상의 데이터베이스 방언 지원
• 하이버네이트 전용 옵션이다.
'JPA' 카테고리의 다른 글
#JPA-6 플러시 & 준영속 상태 (0) 2021.02.15 #JPA-5 영속성 컨텍스트(2) (0) 2021.02.15 #JPA-4 영속성 컨텍스트(1) (0) 2021.02.15 #JPA-3 JPA 객체와 TABLE 매핑 & JPA 동작 확인 & JPQL정의 (0) 2021.02.15 #JPA-1 SQL 중심적인 개발의 문제를 해결하기 위해 등장한 JPA (0) 2021.02.01