• oracle 在xml中批量插入,批量修改及多组条件查询


    最近公司用ibatis开发项目,本来可以用存储过程处理批量插入,批量修改及多组条件查询;但由于使用模块相对较小,暂时就在xml中配置,以前没有在xml做过类似处理,有必要记录一下;好了,代码如下:

    <!-- 批量插入 -->
            <insert id="saveNotificationPushInfo" parameterClass="java.util.List">
                <![CDATA[INSERT ALL]]>
                    <iterate conjunction="" >
                    into notification_push_info(
                        push_log_no,
                        business_book, 
                        employee_id, 
                        notification_no,
                        push_flag, 
                        push_time
                        )values
                        (
                        bep_seq_package.fetch_seq('NOTIFICATION_PUSH_INFO','PUSH_LOG_NO','BEPDATA'),
                        #list[].businessBook:varchar#,
                        #list[].employeeId:varchar#,
                        #list[].notificationNo:varchar#,
                        #list[].pushFlag:varchar#,
                        sysdate
                    ) 
                    </iterate>
                <![CDATA[SELECT * FROM dual]]>
            </insert>
            
            <!-- 多组条件查询-->
            <select id="getSameNotificationList" parameterClass="java.util.List" resultClass="java.util.HashMap">
                    select distinct employee_id "employeeId", 
                                    notification_no "notificationNo" 
                    from notification_push_info npi
                        where npi.invalid_flag = 'N'
                <iterate conjunction="or" open="and" close="">
                        npi.employee_id = #notiList[].employeeId#
                        and npi.business_book = #notiList[].businessBook#
                        and npi.notification_no = #notiList[].notificationNo#
                </iterate>
            </select>
    
            <!-- 批量修改-->
            <update id="updateNotiList" parameterClass="java.util.List">
                begin 
                <iterate conjunction="">
                    update notification_push_info set
                    push_flag = #list[].FLAG#, 
                    push_time = sysdate
                    where invalid_flag = 'N'
                    and employee_id = #list[].employeeId#
                    and notification_no = #notiList[].notificationNo#; 
                </iterate> 
                end; 
            </update>

    如有问题,请大家指出来,谢谢!

  • 相关阅读:
    Python for i 循环
    Python 输入分数并评
    用户名和密码的输入
    cocos2d-x 3.0学习
    VS2008 ShotKey
    Cocos2d-x 3.0的安装方法
    VFC
    一、在WIN7 64位系统平台,VS2013环境下安装WTL90_4090_RC1(2014-04-01)
    http://www.vcf-online.org/
    Win7 64位 VS2012 安装 Qt5
  • 原文地址:https://www.cnblogs.com/lidelin/p/8270819.html
Copyright © 2020-2023  润新知