zoukankan      html  css  js  c++  java
  • 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>

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

  • 相关阅读:
    定时任务、间隔执行任务实现
    界面上小说或视频下载
    简单的打印日志
    无法识别的配置节 system.webServer
    压缩解压
    zabbix初级进阶
    Mysql高可用集群-解决MMM单点故障
    Mycat详解及配置读写分离(Centos7)
    MHA-结合MySQL半同步复制高可用集群(Centos7)
    MySQL全同步复制基于GR集群架构实现(Centos7)
  • 原文地址:https://www.cnblogs.com/lidelin/p/8270819.html
Copyright © 2011-2022 走看看