-
<Spring JPA> 1.3 Hello JPA 프로젝트 생성JPA 2020. 4. 9. 09:57
본격적으로 JPA 프로젝트를 실습한다. 처음은 Spring 을 이용하는 것이 아닌 JPA 만 이용해봄으로써 JPA 가 하는 일에 대해 상세히 볼 수 있고, 스프링이 자동으로 관리해주는 것이 어떤 것인지 확인해보는지 목적을 둔다.
디비는 쉬운 확인과 적용을 위해 H2 데이터베이스를 이용한다.
H2 디비가 가볍고 적용이 빠르기 때문에, 간단한 테스트를 위해서 이용하는 것은 아주 유용하다.
하지만 테스트로만 이용하는 디비라고만 기억하면 조금 곤란하고 장단점에 맞게 이용하자.
또한 빌드툴은 메이븐을 사용한다. 그래들을 사용할 수도 있다. 하지만 강의에서 메이븐을 사용하니까...메이븐으로 가자.
물론 대세는 요즘은 그래들이다.
메이븐 프로젝트를 생성한다. 인텔리제이 기준으로 생성하였고, 간단하게 메이븐 기본 프로젝트를 생성한다.
pom.xml 에 아래와 같이 세팅하여 하이버네이트와 H2 의 의존성을 추가한다.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpa-basic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>1.0.0</version> <dependencies> <!-- 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.199</version> </dependency> </dependencies> </project>
내용은 하이버네이트와 H2 데이터베이스 추가이다. 버전의 경우는 각각의 공식 사이트를 참고하여 최신버전으로 골라줘도 되고, 사실상 Spring 과 함께 쓸 확률이 굉장히 높기 때문에 추후에는 Spring 에서 지원하는 버전을 확인하고 해당 버전으로 맞춰주는 것이 가장 편리하다.
pom 을 작성하면 자동 또는 수동으로 메이븐이 돌아가며 의존성을 추가해준다. 인텔리제이의 경우는 좌측 external libraries 를 통해 의존성이 추가된 것을 확인해준다.
정상적으로 의존성이 추가되었다면, 하이버네이트가 동작하면서 목적지로 삼아야 하는 디비와 설정값을 추가해준다.
하이버네이트는 persistence.xml 파일을 참고하여 동작하므로 해당 파일을 추가해준다. 중요한 점은 위치다.
/META-INF/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>
필수 속성값으로 디비 사용을 위한 드라이버와 url, 계정정보 그리고 dialect 를 설정해준다.
다른 값은 특별한게 없고, dialect 는 디비별 방언을 뜻한다. 사용하는 디비에 맞게 dialect 를 설정해준다.
그리고 옵션 값은 쿼리를 보여줄 것인지, 포맷을 맞출 것인지, 주석을 사용할 것인지 이다. 기능엔 영향이 없다.
<property name="hibernate.hbm2ddl.auto" value="create" />
이 설정도 추후에 설명해주실 것 같다. 일단은 주석처리로 넘어가자.
이렇게까지 해주면 실습을 위한 프로젝트 세팅은 끝이 난다.
반응형'JPA' 카테고리의 다른 글
<Spring JPA> 1.6 플러시 (0) 2020.04.14 <Spring JPA> 1.5 영속성 컨텍스트 (0) 2020.04.13 <Spring JPA> 1.4 Hello JPA 애플리케이션 개발 (0) 2020.04.09 <Spring JPA> 1.2 JPA 소개 (0) 2020.04.07 <Spring JPA> 1.1 SQL 중심적인 개발의 문제점 (0) 2020.04.06