2009년 7월 7일 화요일

[Flex] Blazeds & Remote Service 연동

1. Remote로 데이터 바로 가져오기
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:RemoteObject id="ro" destination="[서비스 id 명 입력]"/>
<mx:DataGrid dataProvider="{ro.[자바메소드].lastResult}" width="100%" height="100%"/>
<mx:Button label="Get Data" click="ro.[자바메소드]"/>
</mx:Application>
 
 

2. Result & Fault Handler 사용하여 데이터 가져오기
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
[Bindable]
private var get_Data:ArrayCollection;
private function resultHandler(event:ResultEvent):void
{
get_Data = event.result as ArrayCollection;
}
private function faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.message);
}
]]>
</mx:Script>
<mx:RemoteObject id="ro" destination="[서비스 id 명 입력]" result="resultHandler(event)" fault="faultHandler(event)" />
<mx:DataGrid dataProvider="{get_Data}" width="100%" height="100%"/>
<mx:Button label="Get Data" click="ro.[자바메소드]"/>
</mx:Application>

3. Java로 데이터 보내기
(1) Java 설정 부분
public List selectDocKeyword(int docKeywordNum) throws SQLException
 {
  dbConn();
  String url = "Jdbc:Odbc:DomainVisual";
  List list = new ArrayList();
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  String sql_query = "Select * from DOC_KEYWORDS where DOC_NUM = " + docKeywordNum;
  try
  {
   con = DriverManager.getConnection(url);
   stmt = con.createStatement();
   rs = stmt.executeQuery(sql_query);
   
   while(rs.next())
   {
    DocKeyword docKey = new DocKeyword();
    docKey.setKeyword01(rs.getString("KEYWORD1"));
    docKey.setKeyword02(rs.getString("KEYWORD2"));
    docKey.setKeyword03(rs.getString("KEYWORD3"));
    docKey.setKeyword04(rs.getString("KEYWORD4"));
    docKey.setKeyword05(rs.getString("KEYWORD5"));
    docKey.setKeyword06(rs.getString("KEYWORD6"));
    docKey.setKeyword07(rs.getString("KEYWORD7"));
    docKey.setKeyword08(rs.getString("KEYWORD8"));
    docKey.setKeyword09(rs.getString("KEYWORD9"));
    docKey.setKeyword10(rs.getString("KEYWORD10"));
    list.add(docKey);
   }
  }finally{
   con.close();
  }
  return list;
 }
 중요한 부분은 진한 부분이다.
 저기서 데이터를 받고, DB 내에 검색 후 다시 List에 넣으면 된다.
 Set / Get 부분을 잘 생각하면.. 쉽게 풀린다..^^

(2) Flex 설정 부분
 이 부분은 원하는 부분에 다음과 같이 설정 하면 된다.
 즉, ro.setData(number);
 이런 식으로 사용하면 된다.

아직 까지는 이런 방법들을 사용했다. 더욱 공부하여서... 더 좋은 방법을 사용하도록 해봐야 겠다..^^

댓글 없음:

댓글 쓰기