最近的项目中用到mybatis处理dao层,在配置文件中配置了<setting name="defaultExecutorType" value="BATCH" />
这样的话能提高效率,但是通过返回判断是否操作成功就出问题了,如果去掉<setting name="defaultExecutorType" value="BATCH" />,insert成功时能返回1,失败时返回-1.但是项目要求<setting name="defaultExecutorType" value="BATCH" />这个又不能去,我该如何去判断操作<insert>............</insert>是成功还是失败呢?
------解决思路----------------------
SqlMapClient smc = this.getSqlMapClient();
int sys=smc.update("updateCompanyStatus",companySta);
计算影响行数
------解决思路----------------------
直接在你的insert和update接口里写返回值为int就行了
------解决思路----------------------
那就再写一个接口,select count(*),好像没什么好办法
------解决思路----------------------
那就再写一个接口,select count(*),好像没什么好办法
直接在你的insert和update接口里写返回值为int就行了
mybatis官方的讨论列表,这句很关键:“If the BATCH
executor is in use, the update counts are being lost. ” 会导致返回为-2147482646,而不是正确就返回条数,失败就返回0. 说明我在接口里返回的就是Int.就是那个批量操作配置导致的。该如何修复呢?