JPA2

JPA와 DB 연동하기

JPA 연동


JPA 설정 파일


<?xml version="1.0" encoding="UTF-8"?>
<persistence >
	<!-- 여기 있는 name이 연결시 사용된다. -->
	<persistence-unit name="step00_basic">

		<!-- entity가 되는 클래스들 -->
		<class>step01.entity.Customer</class>
		<class>step01.entity.Member</class>
		
		<properties>
			<!-- db접속 정보 설정 tag와  속성 -->
			<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
			<property name="javax.persistence.jdbc.url" value="" />
			<property name="javax.persistence.jdbc.user" value="" />
			<property name="javax.persistence.jdbc.password" value="" />

			<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />

			<!-- 옵션 : table을 java 어노테이션을 통해서 자동 생성시키는 옵션들-->
			<!-- console창에 sql 문장 출력 -->
			<property name="hibernate.show_sql" value="true" />
			<!-- 출력되는 sql문장에 가독성을 고려한 들여쓰기 등 반영 -->
			<property name="hibernate.format_sql" value="true" />
			<!-- entity와 sql 부연 설명 -->
			<property name="hibernate.use_sql_comments" value="true" />
			
			<property name="hibernate.id.new_generator_mappings" value="true" />
			
			<!-- Entity 객체 생성시마다 table 생성? 이미 존재하는 table 재사용? 에 대한 설정
				value="create" : 무조건 새롭게  table 생성
				value="none" 이미 존재하는 table 활용
			-->
 			<property name="hibernate.hbm2ddl.auto" value="create" />
		 	<!-- <property name="hibernate.hbm2ddl.auto" value="none" />  -->
			
			</properties>
		</persistence-unit>
</persistence>


실제 연동하기

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("step00_basic");
    // 괄호안의 입력변수로 persistence_unit의 name을 적용한다.
    EntityManager em = emf.createEntityManager();
    EntityTransaction tx = em.getTransaction();
    tx.begin();
    // ~~~ sql 구문실행

    tx.commit();
    // 저장 (commit), 여러번 가능, 오류가 나기 전에 commit이 없다면 저장이 안됨

Discussion and feedback