mybatis-Mybatis操作Oracle数据库:批量修改成功后返回的值是-1?

问题描述

Mybatis操作Oracle数据库:批量修改成功后返回的值是-1?

Mapper.xml


<update id="updateByMultiConditions" parameterType="java.util.List">
    <foreach collection="list" item="item" index="index" open="begin" close="; end;" separator=";">
     update TB_DUTY
     <set>
      <if test="item.morningPeopleIds != null and item.morningPeopleIds != '' " >
     MORNING_PEOPLE_IDS=#{item.morningPeopleIds,jdbcType=VARCHAR},
      </if>
      <if test="item.morningPeopleNames != null and item.morningPeopleNames != '' " >
     MORNING_PEOPLE_NAMES=#{item.morningPeopleNames,jdbcType=VARCHAR},
      </if>
      <if test="item.afternoonPeopleIds != null and item.afternoonPeopleIds != '' " >
     AFTERNOON_PEOPLE_IDS=#{item.afternoonPeopleIds,jdbcType=VARCHAR},
      </if>
      <if test="item.afternoonPeopleNames != null and item.afternoonPeopleNames != '' " >
     AFTERNOON_PEOPLE_NAMES=#{item.afternoonPeopleNames,jdbcType=VARCHAR},
      </if>
      <if test="item.eveningPeopleIds != null and item.eveningPeopleIds != '' " >
     EVENING_PEOPLE_IDS=#{item.eveningPeopleIds,jdbcType=VARCHAR},
      </if>
      <if test="item.eveningPeopleNames != null and item.eveningPeopleNames != '' " >
     EVENING_PEOPLE_NAMES=#{item.eveningPeopleNames,jdbcType=VARCHAR},
      </if>
      <if test="item.leaderIds != null and item.leaderIds != '' " >
     LEADER_IDS=#{item.leaderIds,jdbcType=VARCHAR},
      </if>
     <if test="item.leaderNames != null and item.leaderNames != '' " >
     LEADER_NAMES=#{item.leaderNames,jdbcType=VARCHAR},
     </if>
     </set>
     where DUTY_ID=#{item.dutyId,jdbcType=INTEGER}
    </foreach>
</update>

Controller:

 int resultFlag=dutyService.updateByMultiConditions(dutyList2);

问题:

批量修改成功后返回的值是resultFlag=-1,作何解释?如何才能获得修改的行数?

解决方案

insert,返回值是:新插入行的主键(primary key);需要包含语句,才会返回主键,否则返回值为null。
update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。

解决方案二:

insert返回的是插入的行数啊!如下图:

delete返回值是删除的行数没错,唯独update返回的不是修改的行数。**怎么才能得到修改的行数?我想知道这个。**
目前我的确是采用异常捕捉的方式来处理。

解决方案三:

继续等待高手指教。。。。。。

时间: 2024-08-22 09:35:43

mybatis-Mybatis操作Oracle数据库:批量修改成功后返回的值是-1?的相关文章

sql、oracle-为什么SQL创建oracle服务器链接成功,但是不能操作oracle数据库?

问题描述 为什么SQL创建oracle服务器链接成功,但是不能操作oracle数据库? 报如下错误: 链接服务器"ORAC"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符".消息 7303,级别 16,状态 1,第 1 行无法初始化链接服务器 "ORAC" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象.

Php操作oracle数据库指南-本人原创,经验总结,不能不看

oracle|数据|数据库|原创 本人由于工作关系使用Oracle数据库,发现这里用的人不多,但时常发现有人提的关于PHP操作ORACLE数据库的问题得不到回答,我也曾问过几个,但也无人响应,因此决定把本人在工作中积攒起来的一些技巧.经验奉献出来,希望对使用oracle数据库的人有所帮助.一.配置环境:访问Oracle8以上的数据库需要用到Oracle8 Call-Interface(OCI8).这个扩展模块需要Oracle8 的客户端函数库,因此需要你要连接远程Oracle数据库的话,还要装上

操作Oracle数据库实现上传图片到Blob类型的字段出现的问题

oracle|上传|上传图片|数据|数据库|问题 通过使用OleDb操作Oracle数据库,成功实现图片上传到Blob类型的字段,但有时会发生ORA-01036错误的问题,经查询是错误提示为illegal variable name/number,不知道有谁能详细解释illegal variable name/number的意思 Oracle Data Provider for .NETHiI am using ODP.NET (Oracle Data Provider for .NET) in

Java连接操作Oracle数据库代码详解_java

废话不多说了,直接给大家贴关键代码了,具体代码如下所示: package com.sp.test; import java.sql.*; import java.util.*; public class Text_lianxi extends Thread { public void run() { try { yunxing(); Thread.sleep(10000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.pr

序列-C# EF框架操作Oracle数据库!

问题描述 C# EF框架操作Oracle数据库! EF框架操作Oracle数据库的某张表,表中id用到了序列自增长,怎么在编码中调用他的序列来让他自增长.好像他不会自动识别自增长的. 解决方案 什么叫"在编码中调用他的序列来让他自增长",既然是自动增长,就不要管它好了. 解决方案二: 不可能啊,你仔细检查下oracle的表定义 解决方案三: 你是不是创建表的时候定义错了? 解决方案四: 知道了,因为我没有给他触发器.

php-WCF操作Oracle数据库问题

问题描述 WCF操作Oracle数据库问题 20C 用PHP写了一个调用WCF的程序,WCF可以正常发布,访问老是报错,试了很多种办法都还没有解决..WCF发布后可以正常访问,如下图:然后写了一个PHP调用的程序,如下图所示:打开之后报错,如下图所示..显示的是服务的内部错误,WCF服务的功能为操作Oracle数据库,用OracleClient命名空间,用的是64位的Oracle客户端,以前用32位的Oracle client依然这样宝座,试了网上的各种办法都没有什么用.主要的问题集中在WCF操

oracle 数据库 archar 类型 存放的是数字值,怎么按数字大小排序

问题描述 oracle 数据库 archar 类型 存放的是数字值,怎么按数字大小排序 select stu.numstu.namestu.class_idstu.class_name from student stuclass cs on cs.class_id=stu.class_idorder by stu.num 这个语句要按 stu.num 排序,但是数据库类型是varchar存放的是数字,怎么按大小排序,求助好心人,.. 解决方案 Collections.sort(queryList

oracle数据库误修改/u01权限/所有者的故障恢复

有朋友找到我,说他对生产库做了误操作,导致数据库异常,请我帮忙处理,对/u01目录修改了用户和权限,导致数据库无法登录,但是业务还在继续 误操作命令 mkdir -p /u01/app/grid mkdir -p /u01/app/11.2.0/grid chown -R grid:oinstall /u01 mkdir -p /u01/app/oracle chown oracle:oinstall /u01/app/oracle chmod -R 775 /u01 尝试sqlplus登录数据

Oracle数据库需要修改默认的Profiles,避免用户密码过期

今天Oracle数据库遇到一个问题,用户在用客户端登陆数据库时,抛出异常: ORA-00020: maximum number of processes (150) exceeded 从表面上看是Oracle连接的用户过多,但是这是一个开发环境,没有什么系统在使用,就我们几个开发人员用,之前从来没有出现过这个异常,所以也不知道怎么回事.于是在网上Google了一下,解决办法就是把数值设置的大一点,于是我重启了服务器,设置成了300,执行了如下命令. SQL> alter system set p