最近公司用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>
如有问题,请大家指出来,谢谢!