com.poscoict.glueframework.biz.activity
Class GlueJdbcNativeRun
java.lang.Object
  
com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
      
com.poscoict.glueframework.biz.activity.GlueJdbcNativeRun
public class GlueJdbcNativeRun
- extends GlueActivity<GlueContext>
 
dao¸¦ ÅëÇØ¼ PL/SQL¸¦ ½ÇÇàÇϰųª, SQLÀ» ½ÇÇàÇÏ´Â Activity.
 
 
 
 º» Activity¿¡¼´Â ÁÖ¾îÁø Á¤º¸(table name ¶Ç´Â procedure name)¸¦ ÀÌ¿ëÇØ¼ ½ÇÇàÇϰíÀÚ ÇÏ´Â ¹®ÀåÀ» ¸¸µç´Ù. 
 - {call (?,?} ÇüÅÂÀÇ ÇÁ·Î½ÃÀú ½ÇÇà ¹®Àå
 - select * from  where constraint_column=? ÇüÅÂÀÇ sql ¹®Àå 
 ÀÌ·¯ÇÑ ¹®ÀåÀº ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ SQL ½ÇÇà°á°ú¸¦ ÇÊ¿ä·Î ÇÑ´Ù.
  
     
         
     
 
     
         
     
 
     
         
     
 
 
 
 
 »ç¿ë ¿¹
 - case 1 :
 
     
     
     
     
 
 ==>
      oracle.procedure.arguments(sql-key) ½ÇÇà°á°ú(NAME/DATA_TYPE/IN_OUT/SECOND_NAME ¼ø) °¡ ´ÙÀ½°ú °°À» °æ¿ì  
            /      / IN  / 
      --> {call proc1( )} ¹®À» ½ÇÇàÇÔ.
      
      oracle.procedure.arguments(sql-key) ½ÇÇà°á°ú(NAME/DATA_TYPE/IN_OUT/SECOND_NAME ¼ø) °¡ ´ÙÀ½°ú °°À» °æ¿ì  
      P_INPUT1  / VARCHAR2    / IN      / INPUT1
      P_INPUT2  / NUMBER      / IN/OUT  / INPUT2
      P_OUTPUT  / NUMBER      / OUT     / OUTPUT
      --> {call proc1( ?,? )} ¹®À» ½ÇÇàÇÔ.
      --> bind¿¡ »ç¿ëµÇ´Â data 2°³´Â GlueContext¿¡¼ SECOND_NAME(nullÀÏ °æ¿ì NAME)¸¦ key·Î ÇØ¼ ȹµæÇÔ. 
      --> GlueContext¿¡ 2°³ÀÇ °á°ú°ª Ãß°¡ÇÔ. GlueContextÀÇ key´Â SECOND_NAME(nullÀÏ °æ¿ì NAME)ÀÌ »ç¿ëµÊ
 
 
 
 
 
 - case 2 :
 
     
     
     
     
 
 ==>
      oracle.procedure.arguments(sql-key) ½ÇÇà°á°ú(NAME/DATA_TYPE/IN_OUT/SECOND_NAME ¼ø) °¡ ´ÙÀ½°ú °°À» °æ¿ì  
            /      / IN  / 
      --> {call biz1.sub1( )} ¹®À» ½ÇÇàÇÔ.
      
      oracle.procedure.arguments(sql-key) ½ÇÇà°á°ú(NAME/DATA_TYPE/IN_OUT/SECOND_NAME ¼ø) °¡ ´ÙÀ½°ú °°À» °æ¿ì  
      P_INPUT1  / VARCHAR2    / IN      /  
      P_INPUT2  / NUMBER      / IN/OUT  /  
      P_OUTPUT  / NUMBER      / OUT     /  
      --> {call biz1.sub1( ?,? )} ¹®À» ½ÇÇàÇÔ.
      --> bind¿¡ »ç¿ëµÇ´Â data 2°³´Â GlueContext¿¡¼ SECOND_NAME(nullÀÏ °æ¿ì NAME)¸¦ key·Î ÇØ¼ ȹµæÇÔ. 
      --> GlueContext¿¡ 2°³ÀÇ °á°ú°ª Ãß°¡ÇÔ. GlueContextÀÇ key´Â SECOND_NAME(nullÀÏ °æ¿ì NAME)ÀÌ »ç¿ëµÊ
 
 
 
 
 
 - case 3 :
 
     
     
     
     
     
 
 ==>
      oracle.procedure.arguments(sql-key) ½ÇÇà°á°ú(NAME/DATA_TYPE/IN_OUT/SECOND_NAME ¼ø) °¡ ´ÙÀ½°ú °°À» °æ¿ì  
            /      / IN  / 
      --> {call biz1.sub1( )} ¹®À» ½ÇÇàÇÔ.
      
      oracle.procedure.arguments(sql-key) ½ÇÇà°á°ú(NAME/DATA_TYPE/IN_OUT/SECOND_NAME ¼ø) °¡ ´ÙÀ½°ú °°À» °æ¿ì  
      P_INPUT1  / VARCHAR2    / IN      /  
      P_INPUT2  / NUMBER      / IN/OUT  /  
      P_OUTPUT  / NUMBER      / OUT     /  
      --> {call biz1.sub1( ?,? )} ¹®À» ½ÇÇàÇÔ.
      --> bind¿¡ »ç¿ëµÇ´Â data 2°³´Â GlueContext¿¡¼ °¡Á®¿Ã¶§ »ç¿ëµÇ´Â key´Â name-bindings¿¡ ±Ù°ÅÇÔ 
             ctx.get("a") : P_INPUT1 ÀÌ ¾Æ´Ñ a¸¦ key·Î ÇÔ.
             ctx.get("P_INPUT2") : name-bindings¿¡ P_INPUT2°¡ ¾øÀ¸¹Ç·Î ½ÇÇà°á°ú NAMEÀÌ »ç¿ëµÊ.
      --> GlueContext¿¡ 2°³ÀÇ °á°ú°ª Ãß°¡ÇÔ. GlueContextÀÇ key´Â name-bindings¿¡ ±Ù°ÅÇÔ.
             ctx.put("P_INPUT2", obj1) : name-bindings¿¡ P_INPUT2°¡ ¾øÀ¸¹Ç·Î ½ÇÇà°á°ú NAMEÀÌ »ç¿ëµÊ.
             ctx.put("result", obj2) :  : P_OUTPUT ÀÌ ¾Æ´Ñ result¸¦ key·Î ÇÔ.
 
 
 
 
 
 
 Property ¼³Á¤
 - dao : (Çʼö) applicationContext.xmlÀÇ DAO id.
 
 - sql-key : (Çʼö) xxx-query.glue_sqlÀÇ query id 
        À¯Çü¿¡ ¸Â´Â query¸¦ ÁöÁ¤ÇØ¾ß Çϸç, query ½ÇÇà°á°ú¿¡ µû¶ó Statement ½ÇÇà ±¸¹®ÀÌ ¸¸µé¾îÁü.
        sqlÀº named query¿©¾ß Çϸç, :table_name, :object_name, :package_name, :owner¸¸ named parameter·Î »ç¿ëÇÑ´Ù. 
        ex) oracle ÀÇ °æ¿ì ´ÙÀ½ 3°¡Áö À¯Çü¿¡ ¸Â´Â SQL ÀÌ ÇÊ¿äÇÔ.
            1. procedure ½ÇÇà
                -> {call package.procedure(:arg, :arg, ...)}
            2. package ½ÇÇà
                ->  {call procedure(:arg, :arg, ...)}
            3. table Á¤ÀÇ Á¤º¸¿¡ ±â¹ÝÇÑ sql ½ÇÇà
                -> select * from table where column_pk = :column and ...
                -> insert into table(column, ...) values (:column, ...)
                -> delete from table where column_pk = :column and ...
                -> update talbe set column=:column, ... where column_pk = :column and ...
                   
 - procedure-name : (Çʼö) ½ÇÇàÇϰíÀÚ ÇÏ´Â PL/SQL ÇÁ·Î½ÃÀú ¶Ç´Â ÆÐŰÁö À̸§. table-name °ú °°ÀÌ »ç¿ëÇÒ ¼ö ¾øÀ½.
             sql-key¿¡ ÇØ´çÇÏ´Â query¸¦ ½ÇÇàÇÑ °á°úÇ׸ñ(oracle.procedure.arguments, oracle.package.arguments Âü°í)
              - Çʼö : NAME, DATA_TYPE, IN_OUT Ç׸ñÀ» Æ÷ÇÔÇØ¾ßÇÔ.
              - ¼±Åà : SECOND_NAME Ç׸ñÀº nameÀ» °¡°øÇÑ °ªÀÓ.
             sql»óÀÇ :package_name °ú :object_name ÀÇ °ªÀ¸·Î »ç¿ëµÊ.
              - aaa.bbb ÇüÅÂÀϰæ¿ì °æ¿ì :package_nameÀ¸·Î aaa ¸¦ :object_name¿¡´Â bbb ¸¦ ±× °ªÀ¸·Î bindÇÔ.
              - ccc ÇüÅÂÀÏ °æ¿ì :object_name ¿¡ ccc ¸¦ ±× °ªÀ¸·Î bindÇÔ.
             ½ÇÇà°á°ú´Â IN/OUT °ú OUT À¯Çü¿¡ ´ëÇØ.. _result ·Î GlueContext¿¡ ´ã±è.
 
 - table-name : (Çʼö) table ¸í. procedure-name °ú °°ÀÌ »ç¿ëÇÒ ¼ö ¾øÀ½.
             sql-key¿¡ ÇØ´çÇÏ´Â query¸¦ ½ÇÇàÇÑ °á°ú Ç׸ñ(oracle.table.primary.key Âü°í) 
               - Çʼö NAME, DATA_TYPE, CONSTRAINT_TYPE À» Æ÷ÇÔÇØ¾ßÇÔ.
               - ¼±Åà : NULLABLE Ç׸ñÀº sql ½ÇÇà½Ã bindµÇ´Â °ªÀÇ null checkÇØ´ç Ç׸ñÀÎÁö ÆÇ´ÜÇÔ..
             sql»óÀÇ :table_name ÀÇ °ªÀ¸·Î »ç¿ëµÊ.
 
 - table-sql : (¼±ÅÃ) sql ó¸® À¯Çü. default´Â selectÀÓ. 
             - select : PK(UK)¸¦ Á¶°ÇÀ¸·Î select ¼öÇà. Á¶È¸ °á°ú´Â _resultList À¸·Î GlueContext¿¡ ´ã±è.
             - insert : insert ¼öÇà. µî·Ï °á°ú´Â _result ·Î GlueContext¿¡ ´ã±è.
             - update : PK(UK)¸¦ Á¶°ÇÀ¸·Î update ¼öÇà. ¼öÁ¤ °á°ú´Â _result ·Î GlueContext¿¡ ´ã±è.
             - delete : PK(UK)¸¦ Á¶°ÇÀ¸·Î delete ¼öÇà. »èÁ¦ °á°ú´Â _result ·Î GlueContext¿¡ ´ã±è.
             - save : PK(UK)¸¦ Á¶°ÇÀ¸·Î select ¼öÇàÇÏ°í ±× °á°ú µû¶ó insert or update ¼öÇà. ÀúÀå °á°ú´Â _result ·Î GlueContext¿¡ ´ã±è.
             - desert : delete and insert ¼öÇà. µî·Ï °á°ú´Â _result ·Î GlueContext¿¡ ´ã±è.
             
 - owner : (¼±ÅÃ) : owner Á¤º¸.. 
             oarcle »ç¿ë½Ã sql-key¿¡ ÇØ´çÇÏ´Â query¿¡¼
             user_arguments°¡ ¾Æ´Ñ all_arguments¸¦ »ç¿ëÇÒ °æ¿ì owner Á¤º¸¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖÀ½.
             sql»óÀÇ :owner ÀÇ °ªÀ¸·Î »ç¿ëµÊ.
  
 - name-bindings : (¼±ÅÃ) mapping Á¤º¸·Î name=ctxKey[|name=ctxKey...] ÇüÅÂÀÓ. 
            parocedure-nameÀÌ »ç¿ëµÈ °æ¿ì´Â argumentName=ctxKey|argumentName=ctxKey Àǹ̷Π»ç¿ëÇÔ
            table-nameÀÌ »ç¿ëµÈ °æ¿ì´Â columnName=ctxKey|columnName=ctxKey Àǹ̷Π»ç¿ëÇÔ.
 
 - name-values : (¼±ÅÃ) mapping Á¤º¸·Î name=constants[|name=constants...] ÇüÅÂÀÓ. 
            parocedure-nameÀÌ »ç¿ëµÈ °æ¿ì´Â argumentName=constant|argumentName=constant Àǹ̷Π»ç¿ëÇÔ
            table-nameÀÌ »ç¿ëµÈ °æ¿ì´Â columnName=constants|columnName=constants Àǹ̷Π»ç¿ëÇÔ.
            - null °ªÀÏ °æ¿ì 'name' ¸¸ ÀÔ·Â ÇÒ °Í
            - empty string ÀÏ °æ¿ì 'name=' ¸¸ ÀÔ·Â ÇÒ °Í
            - space ÀÏ °æ¿ì 'name= ' ¸¸ ÀÔ·Â ÇÒ °Í
                 ==>  'a|b=|c= |d=value' ÇüŰ¡ µÉ °ÍÀÓ. 
            name-bindings¿Í name-valuesÀÇ ¿ì¼±¼øÀ§´Â name-values ¸¦ ¿ì¼±À¸·Î ÇÔ.
 
 - chk-name : (¼±ÅÃ) ȸéÀÇ CheckBox ID(HttpRequestÀÇ parameter name).
          ¿Í °°ÀÌ "chk" °¡ ¼±¾ð µÇ¾î ÀÖ´Ù¸é,
         ÀÇ value °ª¿¡ µû¶ó Looping 󸮸¦ ÇÑ´Ù.
         chkÀÇ value´Â 0,1,2...,n À¸·Î ºÎ¿©µÇ¸ç checked µÈ °ª¸¸ Context¿¡ ´ã±ä´Ù.
 
 - list-key : (¼±ÅÃ) Binding ÇÒ Data Context Key.
          ¿Í °°ÀÌ "dataList" °¡ ¼±¾ð µÇ¾î ÀÖ´Ù¸é,
         ÀÌÀü Activity¿¡¼ List(Map) ±¸Á¶ÀÇ Data¸¦ »ý¼ºÇؼ Context¿¡ ´ã´Â´Ù.
         [ sample java code ] 
             List dataList = new ArrayList();
             Map data1 = new HashMap();
             data1.put("EMPNO","1111");
             dataList.add(data1);
             Map data2 = new HashMap();
             data2.put("EMPNO","2222");
             dataList.add(data2);
             ctx.put("dataList",dataList);
 
 
 
 
 
 
| Methods inherited from class com.poscoict.glueframework.biz.activity.GlueActivity | 
commitTransaction, getDao, getEventList, getName, getProperty, getPropertyNames, getTransition, rollbackTransaction, setEventList, setName, setProperty, setTransition | 
 
| Methods inherited from class java.lang.Object | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
GlueJdbcNativeRun
public GlueJdbcNativeRun()
runActivity
public String runActivity(GlueContext ctx)
- Description copied from class: 
GlueActivity 
- Sub Class¿¡¼ ¹Ýµå½Ã ±¸ÇöÇÏ¿©¾ß ÇÏ´Â Abstract Method À̸ç ÀÌ Method´Â F/W¿¡¼ È£ÃâÇÑ´Ù. °á°ú °ªÀº GlueContext¿¡ ´ã¾Æ¼ ´ÙÀ½ Activity ¶Ç´Â F/W¿¡ Àü´ÞÇÏ°Ô µÈ´Ù. ÇÊ¿äÇÑ ¸ðµç Data´Â
 GlueContext¿¡¼ È£ÃâÇÏ¿© »ç¿ëÇÏ°Ô µÈ´Ù.
- Specified by:
 runActivity in class GlueActivity<GlueContext>
 
- Parameters:
 ctx - GlueContext
- Returns:
 - String Á¤»óÀûÀ̸é "success"¸¦ Return ÇÏ°í ºñÁ¤»ó 󸮸¦ ¿øÇϸé "failure"¸¦ Return ÇÑ´Ù.
 
         
 ¿¹) 
 
 
 ==> return "success"À̸é BizLogic Activity ¸¦ ½ÇÇàÇÔ.
 
 
 
 
main
public static void main(String[] args)
 
Copyright © 2013–2014 POSCO ICT SWÁ¦Ç°±â¼úÆÀ. All rights reserved.