Java

iBATIS 사용법-4

griffy 2010. 7. 2. 11:28

이제 사용법 3번에서 만들었던 persistent에서 제공하는 메소드로 실제 사용을 해보자..

우선 전 편에서 안적었던. POJO클래스의 구조도 보여주겠삼..

1. ibatis.domain.EventGift

package ibatis.domain;

/**
 * 이벤트 선물
 *
 * @since 2007. 11. 27
 * @author mose2005 
 */
public class EventGift {
 private int seq;
 private String gift_name;  //선물 이름 varchar20
 private String gift_number;  //선물 번호 char1
 private String win_date;  //당첨일   varchar15
 private String cphone;   //폰번호  varchar15
 private String svccode;   //유입경로 varchar2
 private String event;   //이벤트종류 char1
 private String bcheck;   //선물 당첨여부 char1
....
...   //여기는 다 getter setter라서 생략했다.. getter, setter는 알고 계시겠지 하는 생각에...
...
}

위처럼 생긴 POJO다. 머 간단하게 생각하믄 DB구조랑 같다고 보면 대략 맞다. 
막 만든거라 내맘대로 넣었다. ㅋㅋ

그건 그렇고 DAO를 사용해서 실제 사용을 해볼까요??? 나 왜이러니 반말했다 존댓말 했다가.. ㅋㅋ 


2. ibatis.presentation.EventGiftTest

package ibatis.presentation;

import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;

import ibatis.domain.EventGift;
import ibatis.persistent.iface.iEventGiftDao;
import ibatis.persistent.sqlmapdao.EventGiftDao;

/**
 * iBATIS 테스트
 *
 * @since 2007. 11. 27
 * @author mose2005 
 */
public class EventGiftTest {
 public static void main(String[] args){
  
  System.out.println( "iBATIS TEST START");
  
  iEventGiftDao dao = new EventGiftDao();
  
  EventGift eventGift = new EventGift();
  eventGift.setGift_name("닌텐도DSL");
  eventGift.setGift_number("1");
  eventGift.setWin_date("20071121221000");
  eventGift.setSvccode("TS");
  eventGift.setEvent("N");
  eventGift.setBcheck("N");
  
  try{
   //INSERT  Test
   dao.insertEventGift(eventGift);
   System.out.println( "iBATIS TEST INSERT END");
  } catch(SQLException e){
   e.printStackTrace();
  }
  
  eventGift = new EventGift();
  
  int updateSeq = 0;
  try{
   //SELECT Test
   List list = dao.getEventGift(getDate());
   
   for( int i = 0 ; i < list.size() ; i ++ ) {
    eventGift = (EventGift)list.get(i);
    if( i == 0 )
     updateSeq = eventGift.getSeq();
   
    System.out.println( "SEQ : " + eventGift.getSeq() );
    System.out.println( "GIFT NAME : " + eventGift.getGift_name() );
   }

   System.out.println( "iBATIS TEST SELECT END");
  } catch(SQLException e){
   e.printStackTrace();
  }

  eventGift = new EventGift();
  eventGift.setSeq( updateSeq );
  eventGift.setCphone("011123456768");
  
  try{
   //UPDATE Test
   int ret = dao.updateEventGift(eventGift);
   System.out.println( "UPDATE COUNT : " + ret );
   System.out.println( "iBATIS TEST UPDATE END");
  } catch(SQLException e){
   e.printStackTrace();
  }

  System.out.println( "iBATIS TEST END");
  
 }
 
 private static String getDate(){
  SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");  
  return formatter.format( Calendar.getInstance().getTime() );
 }
}

그냥 사용할땐 저렇게 하면 된다..
사용하기 편리하지 않나??? 이렇게 되면 DAO에서 DB를 오라클에서 mysql로 바꾸건, 파일로 바꾸건 presentation은 사용만 하믄 댄다... 참 편리한 세상이다. DB 를 열고 닫는 부담감에서 해방되다니.. ㅋㅋㅋ