이제 사용법 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 를 열고 닫는 부담감에서 해방되다니.. ㅋㅋㅋ