Written by
최태열
on
on
JPA2
JPA와 DB 연동하기
JPA 연동
JPA 설정 파일
- persistence.XML
<?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이 없다면 저장이 안됨
- EntityManagerFactory : entity를 관리하는 entitymanager를 만드는 객체, DB와 실제 연동되는 부분이다.
- EntityManager : entity를 관리하는 객체, 이 객체를 통해 crud
- EntityTransaction : manager를 통해 변경된 내용을 종합하여 DB에 반영 시켜준다.
Discussion and feedback