- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

Similar documents
@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Spring Data JPA Many To Many 양방향 관계 예제

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

Spring Boot/JDBC JdbcTemplate/CRUD 예제

윈도우시스템프로그래밍

Spring Boot

PowerPoint Presentation

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

유니티 변수-함수.key

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

JAVA PROGRAMMING 실습 08.다형성

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

쉽게 풀어쓴 C 프로그래밍

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

10.ppt

제11장 프로세스와 쓰레드

PowerPoint Presentation

윈도우시스템프로그래밍

Microsoft PowerPoint - 2강

C# Programming Guide - Types

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

슬라이드 제목 없음

09-interface.key

서현수

교육자료

Interstage5 SOAP서비스 설정 가이드

Microsoft PowerPoint - CSharp-10-예외처리

어댑터뷰

C++ Programming

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

OOP 소개

교육2 ? 그림

PowerPoint Presentation

오버라이딩 (Overriding)

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

05-class.key

JAVA PROGRAMMING 실습 05. 객체의 활용

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

PowerPoint 프레젠테이션

07 자바의 다양한 클래스.key

Design Issues

과정명

PowerPoint 프레젠테이션

강의 개요

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

Web Application을 구성하는 패턴과 Spring ROO의 사례

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

<session-factory> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.oracledriver</property> <property name="hibernate.connection.u

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

PowerPoint 프레젠테이션

DocsPin_Korean.pages

No Slide Title

Microsoft PowerPoint - Chapter 6.ppt

SQL

Microsoft PowerPoint - 04-UDP Programming.ppt

[Brochure] KOR_TunA

PowerPoint 프레젠테이션

Microsoft PowerPoint - Lect04.pptx

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

슬라이드 1

비긴쿡-자바 00앞부속

SW

1 SW

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

untitled

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

ThisJava ..

PowerPoint Presentation

슬라이드 1

Intro to Servlet, EJB, JSP, WS

thesis

11강-힙정렬.ppt

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

PowerPoint 프레젠테이션

MasoJava4_Dongbin.PDF

Convenience Timetable Design

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Dialog Box 실행파일을 Web에 포함시키는 방법

PowerPoint Template

문서 템플릿

( )부록

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,


혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

Studuino소프트웨어 설치

DBMS & SQL Server Installation Database Laboratory

Something that can be seen, touched or otherwise sensed

Microsoft PowerPoint 장강의노트.ppt

파워포인트 템플릿

MySQL-.. 1

Microsoft Word - src.doc

Transcription:

JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다. - O/R 매핑기능을제공해주는소프트웨어를 O/R 매핑프레임워크 라고한다. 대표적인 O/R 매핑프레임워크가 하이버네이트 (hibernate) 이다. - 하이버네이트 : 데이터베이스의어느테이블과자바의어느클래스가서로대응되는지를어노테이션으로정의한다. - O/R 매핑프레임워크를사용하면, DB 접근과데이터취득에대한작업을개발자가작성하지않아도된다. 즉, DB 접속의시작및종료, 데이터조작등의작업을작성할필요가없다. - 스프링환경설정파일에 JDBC에대한내용대신에하이버네이트에대한별도의환경설정파일 (persistence.xml) 을사용한다. - 스프링환경설정파일에서는단지의존성주입에대한선언과 JPA를사용한다는선언을작성한다.( 네임스페이스 p 를사용하면편리하다.) 다음은스프링환경설정파일에 JPA의사용을선언한예 <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname="persistence.xml 에선언된 <persistence-unit name> 의이름 "> - JPA 의선언에사용된 LocalEntityManagerFactoryBean 클래스는데이터소스나글로벌트랜잭션을이용할수없 으며, 독립형 (stand-alone) 어플리케이션이나간단한테스트인경우에사용한다. - STS 에서 JPA 설정파일만드는방법 (STS 에하이버네이트플러그 - 인설치후 ) - STS의 Help 메뉴에서 install new S/W 선택. - Add 를선택해서하이버네이트의 url을입력. (http://download.jboss.org/jbosstolls/updates/stable) - Jboss Web and JavaEE Development 에서 Hibernate Tools 선택 1 프로젝트에서오른쪽마우스클릭 2 Properties 선택 3 Project Facets 선택 4 Convert to JPA 선택 5 Further Available Configuration 선택 6 Platform 을 Hibernate 로, Type 을 Disable Library Configuration - 위의과정을마무리하면, 프로젝트의 META-INF 에 "persistence.xml" 이생성된다. 이파일을더블클릭해서환경설 정을진행한다. JPA 를사용할때클래스를생성하면, 에러를의미하는적색의마크가나타나는데이것은 persistence.xml 에클래 스가등록되지않아서발생한다. - 1 -

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname="exampleofjpa"> </bean> <bean class="org.springframework.orm.jpa.support.persistenceannotationbeanpostprocessor"> </bean> 동일해야한다. - 다음은 JPA 설정파일인 persistence.xml의예 <persistence-unit name="exampleofjpa"> <provider>org.hibernate.ejb.hibernatepersistence</provider> <class> 매핑에사용되는클래스이름 </class> <class> 매핑에사용되는클래스이름 </class> <exclude-unlisted-classes /> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.oracledialect" /> <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.oracledriver" /> <property name="hibernate.connection.username" value="hr" /> <property name="hibernate.connection.password" value="hr" /> <property name="hibernate.connection.uri" value="jdbc:oracle:thin:@localhost:1521:orcl" /> <property name="hibernate.show_sql" value="true" /> </properties> </presistence-unit> - 우선, DB 의테이블과자바클래스간의매핑에사용되는클래스 ( 엔터티 ) 를작성한다. @Entity @Table(name="userinfo"); public class implements Serializable { private Integer userid; private String name; private reservation; private Integer teamid; @Id @Column(name="team_id") public Integer getteamid() { return this.teamid; JPA에의해매핑되는클래스임을선언이클래스와매핑되는 DB의테이블이름 ( 클래스이름과테이블의이름이같으면생략가능 ) 이항목은 DB테이블에는없는항목으로검색결과저장에사용된다. primary key에해당하는항목임을선언테이블의 primary key 컬럼이름 ( 클래스의항목이름과테이블의항목이름이같으면생략가능 ) - 2 -

public void setteamid(integer teamid) { this.teamid = teamid; @OneToMany(mappedBy="user") public Set<> get() { return this.reservation; 사용자는다수의예약을가질수있다. 1 대다 의관계를명시한다. mappedby 항목에는상대방클래스에선언된현재클래스의변수이름을기술 public void set(set<> reservation) { this.reservation = reservation; public boolean equals(object other) {... public int hashcode() {... equals() 와 hashcode() 를반드시오버라이드한다. @OneToOne @JoinColumn(name="team_id") public Integer getteamid() { return this.teamid; 외래키가선언되어있음을의미 외래키가참조하는상대방테이블의컬럼이름 public void setteamid(integer teamid) { this.teamid = teamid; - 3 -

- JPQL(Java Persistence Query Language) 란?. 1 JPA를통해서데이터베이스를검색할때사용한다. 2 JPA 프레임워크가 JPQL을 SQL로변환하고 DB를조회한다. 3 SQL은 DB를조회, JPQL은자바클래스를조회 - JPQL의예 FROM AS user WHERE user.name = 'John' 클래스의 name 프로퍼티가 'John' 인 인스턴스를획득. 실제로는 클래스에대응하는 DB 테이블에서데이터를획득한후 user 인스턴스에저장한다. - JPQL 에서의조인예 user_id name 1 kim 2 lee reservation_id user_id reserved_date 1 1 20100101 2 1 20100202 FROM AS user INNER JOIN user.reservation AS reservation Object[0] Object[1] FROM AS user INNER JOIN FETCH user.reservation AS reservation - 4 -

FROM AS user LEFT OUTER JOIN user.reservation AS reservation Object[0] Object[1] user_id=2 FROM AS user LEFT OUTER JOIN FETCH user.reservation AS reservation user_id=2-5 -