博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iBATIS配置文件的特殊使用方法
阅读量:6988 次
发布时间:2019-06-27

本文共 2668 字,大约阅读时间需要 8 分钟。

JAVA中的iBATIS可以很方便的对数据库进行增删改、查询
最近在用iBATIS,这里列出一些我认为比较好的地方:
1、增加记录时返回随机生成的主键值:
 <insert id="insertIntoDB" parameterClass="BepsContract">
   <selectKey resultClass="int" keyProperty="contractPk">
   SELECT BEPS_CONTRACT_PK.NEXTVAL FROM DUAL
  </selectKey>
  insert into NCS_BEPS_CONTRACT (CONTRACT_NO,ACK_NO,PAYER_NAME,PAYER_ACCOUNT,PAYEE_NAME,PAYEE_ACCOUNT,ACK_FLAG,DIRECTION,BRANCH_ID,PROCESS_STATUS,CREATE_ON,CREATE_BY,MODIFY_ON,MODIFY_BY,TYPE_ID,TYPE_DESC,CONTRACT_PK,type,SDN_STATUS,DDA_STATUS,LOAD_FILE_NAME,TXN_REF_NO,DESTINATION,EXPIRY_DATE,PAYER_BANKCODE,PAYER_BRANCH_CODE,PAYEE_BANKCODE,PAYEE_BRANCH_CODE,BUYER_SUBSCRIPTION_REF,MERCHANT_ID,TXN_CYCLE,PAYER_BANKNAME,PAYEE_BANKNAME,TXN_AMOUNT_LIMIT,CUMULATIVE_AMOUNT_LIMIT,TXN_COUNT_LIMIT,IS_FROM_BACKEND)
     values ( 
     #contractNo:VARCHAR#, 
     #ackNo:VARCHAR#, 
     #payerName:VARCHAR#, 
     #payerAccount:VARCHAR#, 
     #payeeName:VARCHAR#, 
     #payeeAccount:VARCHAR#, 
     #ackFlag:VARCHAR#, 
     #direction:VARCHAR#, 
     #branchId:VARCHAR#, 
     #processStatus:VARCHAR#, 
     SYSDATE, 
     #createBy:VARCHAR#, 
     SYSDATE, 
     #modifyBy:VARCHAR#, 
     #typeId:VARCHAR#, 
     #typeDesc:VARCHAR#, 
     #contractPk:NUMERIC#, 
     #type:VARCHAR#,
              #sdnStatus:VARCHAR#, 
     #ddaStatus:VARCHAR#, 
     #loadFileName:VARCHAR#, 
     #txnRefNo:VARCHAR#, 
     #destination:VARCHAR#, 
     #expiryDate:DATE#, 
     #payerBankcode:VARCHAR#, 
     #payerBranchCode:VARCHAR#, 
     #payeeBankcode:VARCHAR#, 
     #payeeBranchCode:VARCHAR#, 
     #buyerSubscriptionRef:VARCHAR#, 
     #merchantId:VARCHAR#, 
     #txnCycle:VARCHAR#,
     #payerBankname:VARCHAR#, 
     #payeeBankname:VARCHAR#, 
              #txnAmountLimit:DOUBLE#, 
     #cumulativeAmountLimit:DOUBLE#, 
     #txnCountLimit:NUMERIC#,
     #isFromBackend:VARCHAR#
  ) 
 </insert>
2、一些特殊的查询:
 <select id="selectIncomingTimeDebitPkg" resultClass="java.util.HashMap" parameterClass="CondPkgheadTo">
  select B.*, FLOOR((select WORKING_DAY from NCS_BEPS_MBFE_STATUS where BRANCH_ID = #branchId:VARCHAR#) - B.CONSIGNED_DATE) AS REMAIN_DAYS
  from NCS_BEPS_PKGHEAD B
        where MSG_CODE = #msgCode:VARCHAR# and
                 BRANCH_ID = #branchId:VARCHAR# and
     package_head_pk in (select package_head_pk from ncs_beps_txn_in where 
         MSG_CODE = #msgCode:VARCHAR# and
         BRANCH_ID = #branchId:VARCHAR# and
         GROUP_ID = #groupId:VARCHAR#
       <isNotNull property="processStatusList">
       <iterate prepend="and" property="processStatusList" open="(" close=")" conjunction="or">     
        PROCESS_STATUS =( #processStatusList[]# )
       </iterate>
       </isNotNull>
     )
           <iterate prepend = "and" property = "msgProcessStatusList" open = " (" close = ") " conjunction = "or">     
              MSG_PROCESS_STATUS = ( #msgProcessStatusList[]# )
              </iterate>  
    <isNotNull property="searchFailStatus" prepend="and">
     <![CDATA[ BEPS_STATUS <> 'BACK00' ]]>
    </isNotNull>
 </select>  
    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/07/03/804493.html,如需转载请自行联系原作者
你可能感兴趣的文章
Office365 SKU-1
查看>>
汉语国际传播思索
查看>>
TODO:排列组合问题:n个数中取m个
查看>>
27.chown更换所有者
查看>>
grep、egrep以及正则表达式的使用
查看>>
rsync加inotify实现无间隔文件同步
查看>>
系统最小化安装后,使用命令时提示“command not found”
查看>>
ffmpeg2.x开始支持opencl,编译测试
查看>>
python 抽象类分析
查看>>
DNS基本使用--主从服务器的搭建、主从同步、子域授权的实现
查看>>
centos 7
查看>>
java获取路径的方法
查看>>
IK中文分词_IK分词器配置文件讲解以及自定义词库
查看>>
One or more constraints have not been satisfied.
查看>>
redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置
查看>>
RBAC扩展
查看>>
Java函数式编程和lambda表达式
查看>>
Android:Activity(八):Fragment的生命周期
查看>>
【视频】 安卓***课程收集整理
查看>>
按某一列里面同一类横向显示数据总数
查看>>