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>

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

  • 相关阅读:
    DataGridView编辑后立即更新到数据库的两种方法
    Azure 意外重启, 丢失sql server master表和 filezilla
    欧洲美食精选-德国篇
    Azure 负载均衡和可用性集
    windows Azure 域名绑定
    Azure billing 分析(2)
    Azure billing 分析
    试用windows Azure
    Excel公式无法重算,暂无法解决
    iphone 语音备忘录 同步问题
  • 原文地址:https://www.cnblogs.com/lidelin/p/8270819.html
Copyright © 2011-2022 走看看