com.poscoict.glueframework.biz.activity.mybatis
Class GlueMybatisInsert

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

public class GlueMybatisInsert
extends GlueActivity<GlueContext>

Insert Mybatis Activity. GlueMybatisInsert Class는 SQL insert 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 : (필수) mybatis의 query id
 
 - 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}_insertCnt
 
 - is-audit : insert시 Audit 항목 적용 Option
         Audit 항목은 glue.properties에 audit.insert.key 와 audit.update.key 를 참고한다.
 
 
 
 예제
 사용 예# 1
 
     <activity name="Insert" class="com.poscoict.glueframework.biz.activity.mybatis.GlueMybatisInsert">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.insert" />
         <property name="param-bindings" value="empno=EMPNO|ename=ENAME|sal=SAL|deptno=DEPTNO" />
         <property name="result-key" value="insertCnt" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 2
 - Looping 처리. (Web)
 
     <activity name="Insert" class="com.poscoict.glueframework.biz.activity.mybatis.GlueMybatisInsert">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.insert" />
         <property name="param-bindings" value="empno=EMPNO|ename=ENAME|sal=SAL|deptno=DEPTNO" />
         <property name="result-key" value="insertCnt" />
         <property name="chk-name" value="chk" />
         <transition name="success" value="Find" />
     </activity>
 
 
 사용 예# 3
 - Looping 처리. (NonUI)
 
     <activity name="Custom" class="...">
         <transition name="success" value="Insert" />
     </activity>
     <activity name="Insert" class="com.poscoict.glueframework.biz.activity.mybatis.GlueMybatisInsert">
         <property name="dao" value="testdao" />
         <property name="sql-key" value="emp.insert" />
         <property name="param-bindings" value="empno=EMPNO|ename=ENAME|sal=SAL|deptno=DEPTNO" />
         <property name="result-key" value="insertCnt" />
         <property name="list-key" value="dataList" />
         <transition name="success" value="Find" />
     </activity>
 
 
 참고 : HTML Code
 
     <input type="checkbox" name="chk" value="0">
     <input type="text" name="EMPNO" value="1111">
     <input type="text" name="ENAME" value="name1">
     <input type="text" name="SAL" value="1000">
     <input type="text" name="DEPTNO" value="10">
     <input type="checkbox" name="chk" value="1">
     <input type="text" name="EMPNO" value="1112">
     <input type="text" name="ENAME" value="name2">
     <input type="text" name="SAL" value="1100">
     <input type="text" name="DEPTNO" value="10">
 
 
 참고 : 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");
     data1.put("ENAME","name1");
     data1.put("SAL","1000");
     data1.put("DEPTNO","10");
     dataList.add(data1);
     Map<String, Object> data2 = new HashMap<String, Object>();
     data2.put("EMPNO","1112");
     data2.put("ENAME","name2");
     data2.put("SAL","1100");
     data2.put("DEPTNO","10");
     dataList.add(data2);
     ctx.put("dataList",dataList);
 
 
 참고 : glue.properties
 
     audit.insert.key=id,ip,cur_time,id,ip,cur_time
     audit.update.key=id,ip,cur_time
 


Field Summary
 
Fields inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
dynamicProperties, logger
 
Constructor Summary
GlueMybatisInsert()
           
 
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

GlueMybatisInsert

public GlueMybatisInsert()
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–2015 POSCO ICT SW제품기술팀. All rights reserved.