Class GlueJdbcDelete
java.lang.Object
com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
com.poscoict.glueframework.biz.activity.GlueJdbcDelete
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>
사용 예# 6
- 유형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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionrunActivity
(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
-
Constructor Details
-
GlueJdbcDelete
public GlueJdbcDelete()
-
-
Method Details
-
runActivity
Description copied from class:GlueActivity
Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.예) <transition name="success" value="BizLogic"/> <transition name="failure" value="ErrorHandle"/> ==> return "success"이면 BizLogic Activity 를 실행함.
- Specified by:
runActivity
in classGlueActivity<GlueContext>
- Parameters:
ctx
- GlueContext- Returns:
- String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.
-