Whiteship's Note

'어플리케이션'에 해당되는 글 1건

  1. 2006.12.27 1-5. 모델 사용하기 (2)

1-5. 모델 사용하기

Hibernate/openseed강좌 : 2006. 12. 27. 02:03


앞에서 만든 모델을 사용하는 간단한 어플리케이션을 만들기 위해 src밑에 app라는 패키지를 만들고 그안에 PizzaApp 클래스를 만듭니다.

package app;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class PizzaApp {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext(
                new String[] { "applicationContext-dao.xml",
                        "applicationContext-jdbc-datasource.xml" });
        SessionFactory sf = (SessionFactory) ac.getBean("sessionFactory");

        Session s = sf.openSession();
        Transaction tx = s.beginTransaction();

        //TODO 할일

        tx.commit();
        s.close();
    }
}

녹색 부분은 Spring을 사용하여 session 팩토리를 받아옵니다. 역시 전 Session Factory도 처음 보는 것이기 때문에 이 부분도 공부가 필요합니다.
파란색 부분은 세션 팩토리를 사용하여 세션을 열고 닫는 부분입니다.
보라색 부분은 세션으로 부터 트랜잭션을 시작하고 완료 시키는 부분입니다.

세션을 열고 트랜잭션 시작한 뒤에~ 하고 싶은 일을 하면 됩니다. 먼저 Pizza 객체를 생성하여 DB에 저장을 해봅니다.
        Pizza pizza = new Pizza();
        pizza.setName("keesun's pizza");
        pizza.setPrice(200);
        pizza.setSize("BIG");
위와 같이 코딩을 하고 저장을 하겠다는 의미로
    s.save(pizza);
이렇게 하면 DB에 들어가게 될 것입니다.

기대를 품고 실행을 하면 다음과 같은 에러를 볼 수 있습니다.

postgres JDBC를 빌드 경로에 추가하지 않아서 발생한 에러입니다. 적절한 조취를 취한 뒤[각주:1] 다시 실행시키면~

1-3. 기본 설정 하기
에서 유심히 보신 분은 눈치 채셨겠지만 applicationContext-dao.xml 의  sessionBean 설정에서 '뭔가 들어가야 할 부분'에 다음의 코드를 넣습니다.
<property name="annotatedClasses">
            <list>
                <value>model.Pizza</value>
            </list>
</property>

어노테이션이 사용된 클래스를 등록해 주는 것 같습니다. 그리고 이제 프로그램을 실행시키면 커맨드 창에서 다음의 메시지를 확인 할 수 있습니다.

Hibernate: select nextval ('Pizza_PizzaId_Seq')
Hibernate: insert into O_Pizza (price, name, size, pizzaId) values (?, ?, ?, ?)

그리고 DB에서 확인하면 다음과 같이 Table이 생기고 data가 들어간 것을 확인 할 수 있습니다.

사용자 삽입 이미지

정말 마술 같은 쑈입니다. :) DB와 SQL에 손도 안대고 table을 만들고 데이타를 넣다니..허허허;;;
  1. postges설치 경로 / 8.1 / jdbc / postgresql-8.1-405.jdbc3.jar 를 lib에 복사한 뒤 빌드 경로에 추가 해줌 [본문으로]
top

  1. Favicon of http://chanwook.tistory.com/ BlogIcon 찬욱 2006.12.27 10:30 PERM. MOD/DEL REPLY

    부러워요!!
    혼자 이런걸 하다니!

    안그래도 Hibernate 하면서 annotation 으로 공부하고 싶었는데 눈팅으로 공부하면 되겠군요..
    으흐흐..

    Favicon of http://whiteship.tistory.com/ BlogIcon 기선 2006.12.27 11:33 PERM MOD/DEL

    오픈시드에 내가 체험한 강의가 그대로 올라와 있으니 그걸 보면되지.
    아직 정리를 못한 내용도 그곳에 올려진 파일에 있어.ㅋㅋ

Write a comment.