com.poscoict.glueframework.biz.activity
Class GlueJdbcDelete

java.lang.Object
  extended by com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
      extended by com.poscoict.glueframework.biz.activity.GlueJdbcDelete

public class GlueJdbcDelete
extends GlueActivity<GlueContext>

Delete Activity. GlueJdbcDelete Class는 "delete from emp where empno=?" 와 같은 SQL delete statement를 수행 하는 Activity 이다. Web화면과 NonUI 공통으로 사용되고 Binding Parameter Type은 Web인 경우 String []의 {0}번째로 Binding 하고 Web이 아닌 경우는 해당 Object를 Binding 한다. 여기서 chk-name이 있는 경우 Web의 CheckBox에 Check 된 수만큼 반복 하고 없는 경우는 Context에서 바로 String[] 로 get하여 Binding 한다. NonUI의 경우 Data Type이 String[]가 아닌 경우 바로 해당 Object로 Binding 한다.

 Activity Property
 
 - dao : (필수) applicationContext.xml의 DAO id.
 
 - sql-key : (필수) {name}-query.glue_sql의 query id 
 
 - param-count : (선택) Binding 할 개수 ( delete emp where empno=? )의 "?" 수
 
 - param#(param0,param1...) : (선택) Binding Value ("?"와 순서 일치 하여야 함)
 
 - param-bindings : (선택) binding에 사용되는 값과 Mapping 되는 Key( bindName=ctxName[|bindName=ctxName] ).
         ctx의 key가 binding variable name과 같은 경우 생략(대소문자 구분함).
         ctxName 은 GlueContext의 Key 이거나 list-key 에 해당하는 map의 Key이다.
 
 - chk-name : (선택) 화면의 CheckBox ID(HttpRequest의 parameter name).
         chk-name 에 따라 Looping 처리를 한다. 
         chk-name에 해당하는 것이 다음과 같이 checkbox 라면, 그 값은 0,1,2...,n 으로 부여되며 
         checked 된 값만 GlueContext에 담긴다. 
 
 - list-key : (선택) SQL 문에 Binding 할 Data로서, Map 형태의 Data을 갖는 List 구조체를 가르킴.
 
 - result-key : (선택) Context에 담기는 Query 수행 결과(등록 record 수) Key.
         [ default ] : {sql-key}_deleteCnt
 
 
 
 예제
 사용 예# 1
 - 유형1 쿼리를 사용하는 경우
 
     <activity name="Delete" class="com.poscoict.glueframework.biz.activity.GlueJdbcDelete">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.delete" />
         <property name="param-count" value="1" />
         <property name="param0" value="EMPNO" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 2
 - 유형1 쿼리의 Looping 처리. (Web)
 
     <activity name="Delete" class="com.poscoict.glueframework.biz.activity.GlueJdbcDelete">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.delete" />
         <property name="param-count" value="1" />
         <property name="param0" value="EMPNO" />
         <property name="chk-name" value="chk" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 3
 - 유형1 쿼리의 Looping 처리. (NonUI)
 
     <activity name="Custom" class="...">
         <transition name="success" value="Delete" />
     </activity>
     <activity name="Delete" class="com.poscoict.glueframework.biz.activity.GlueJdbcDelete">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.delete" />
         <property name="param-count" value="1" />
         <property name="param0" value="EMPNO" />
         <property name="list-key" value="dataList" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 4
 - 유형2 쿼리를 사용하는 경우
 
     <activity name="Delete" class="com.poscoict.glueframework.biz.activity.GlueJdbcDelete">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.delete.named" />
         <property name="param-bindings" value="empno=EMPNO" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 5
 - 유형2 쿼리의 Looping 처리. (Web)
 
     <activity name="Delete" class="com.poscoict.glueframework.biz.activity.GlueJdbcDelete">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.delete.named" />
         <property name="param-bindings" value="empno=EMPNO" />
         <property name="chk-name" value="chk" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 5
 - 유형2 쿼리의 Looping 처리. (NonUI)
 
     <activity name="Custom" class="...">
         <transition name="success" value="Delete" />
     </activity>
     <activity name="Delete" class="com.poscoict.glueframework.biz.activity.GlueJdbcDelete">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.delete.named" />
         <property name="param-bindings" value="empno=EMPNO" />
         <property name="list-key" value="dataList" />
         <transition name="success" value="Find" />
     </activity>
 
 
 
 참고 : {name}-query.glue_sql
 
     <query id="emp.delete" desc="Type #1">
         <![CDATA[ 
               delete from emp where empno=?
         ]]>
     </query>
     <query id="emp.delete.named" desc="Type #1" isNamed="true">
         <![CDATA[ 
               delete from emp where empno=:empno
         ]]>
     </query>
 
 
 참고 : HTML Code
 
     <input type="checkbox" name="chk" value="0">
     <input type="text" name="EMPNO" value="1111">
     <input type="checkbox" name="chk" value="1">
     <input type="text" name="EMPNO" value="1112">
 
 
 참고 : Java Code (Custom)
 
     List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
     Map<String, Object> data1 = new HashMap<String, Object>();
     data1.put("EMPNO","1111");
     dataList.add(data1);
     Map<String, Object> data2 = new HashMap<String, Object>();
     data2.put("EMPNO","2222");
     dataList.add(data2);
     ctx.put("dataList",dataList);
 


Field Summary
 
Fields inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
dynamicProperties, logger
 
Constructor Summary
GlueJdbcDelete()
           
 
Method Summary
 String runActivity(GlueContext ctx)
          Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다.
 
Methods inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
commitTransaction, commitTransaction, getDao, getEventList, getName, getProperty, getPropertyNames, getTransition, rollbackTransaction, rollbackTransaction, setEventList, setName, setProperty, setTransition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlueJdbcDelete

public GlueJdbcDelete()
Method Detail

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 한다.
 예) 
 <transition name="success" value="BizLogic"/>
 <transition name="failure" value="ErrorHandle"/>
 ==> return "success"이면 BizLogic Activity 를 실행함.
 


Copyright © 2013–2016 POSCO ICT. All rights reserved.