느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
article thumbnail
Published 2019. 12. 14. 11:14
JPA 개발환경 구성 IT/JPA

최근 JPA(Java Persistence API)에 대한 관심이 생겨서 해당 기술에 대한 공부를 진행중이다. 일전에 나는 거의 모든 프로젝트를 MyBatis를 위주로 Database에 접근하여 데이터를 추출, 저장, 수정하였지만 최근에는 JPA를 이용한 DataAccess가 대세로 보인다.

 

JPA를 공부한 결과 SQL을 거의 사용하지 않고 객체를 이용하여 데이터에 접근하므로 좀 더 객체지향 적으로 코드를 작성하는 느낌이 있다.

 

이번 포스팅에서는 JPA를 실습하기 위한 개발환경 구성을 작성하고자 한다.

 

개발환경 IDE : STS

빌드툴 : Maven

 

1. File > Maven Project를 누른다.

 

 

maven-archetype-quickstart 를 누른다.

 

 

적절한 Group Id와 Artifact Id를 눌러준다.

 

생성된 프로젝트를 우클릭 한 후 Source Folder를 누른다.

 

 

우측의 Browse 버튼을 누른다.

 

src>main 폴더를 클릭한 후 OK 버튼을 누른다.

 

src/main/resources라고 Folder명을 지정하고 Finish 버튼을 누른다.

 

 

resources 폴더 밑에 META-INF 폴더를 만들어 주고 persistence.xml 파일을 생성한다.

 

 

[persistence.xml]

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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_1.xsd"
	version="2.1">

	<persistence-unit name="jpastart" transaction-type="RESOURCE_LOCAL">

		<!-- false로 지정하면 <class>태그로 지정하지 않은 클래스는 관리 대상에 포함하지 않는다. -->		
		<exclude-unlisted-classes>false</exclude-unlisted-classes>
		
		<properties>
			<!-- DB 연결정보 -->
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://[url]/[dbname]?characterEncoding=utf8"/>
			<property name="javax.persistence.jdbc.user" value="[user]"/>
			<property name="javax.persistence.jdbc.password" value="[password]"/>
			
			<!-- 쿼리 로그 출력 여부 -->
			<property name="hibernate.show_sql" value="true"/>
			
			<!-- 하이버네이트 전용 프로퍼티로 쿼리를 생성할 때 사용할 Dialect를 지정 -->
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
			
			
			<!-- 하이버네이트가 사용할 c3p0 커넥션풀 관련 프로퍼티를 설정한다. -->
			<property name="hibernate.c3p0.min_size" value="5"/>
			<property name="hibernate.c3p0.max_size" value="20"/>
			<property name="hibernate.c3p0.timeout" value="500"/>
			<property name="hibernate.c3p0.idle_test_period" value="2000"/>
		</properties>
		
	</persistence-unit>

</persistence>

자신의 Database 환경에 맞게 설정값을 입력한다.

 

 

[pom.xml]

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <hibernate.version>5.2.6.Final</hibernate.version>
</properties>

........... 생략 .............
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>${hibernate.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>${hibernate.version}</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
    <version>${hibernate.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.3</version>
</dependency>

연관라이브러리의 Dependency를 설정하여 준다.

 

 

 

이렇게 하면 JPA를 사용할 준비가 완료된다.

 

profile

느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

@주현태

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!