mybatisupdate数据时无异常但没更新成功

小德cyj      2022-04-07     375

关键词:

没更新的问题原因:

sqlSession.commit();

没执行commit,但官方文档里有这样的描述:“默认情况下 MyBatis 不会自动提交事务,除非它侦测到有插入、更新或删除操作改变了数据库。”  

源码:

<update id="updateTest" parameterType="cn.td.user.TestModel"> //TestModel是一个JavaBean
 update test_table set test_case_suc_num = #{test_case_suc_num} where test_name = #{test_name} </update>
    public void updateAllInfo(List<TestModel> list) throws IOException{     
        SqlSessionFactory sqlSessionFactory = getSqlFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        for(TestModel testModel : list){
            System.out.println(testModel);
            sqlSession.update("cn.td.dao.updatetest",testModel);
            sqlSession.commit();
        }
        sqlSession.close();
    }

 以上的java代码中update异常会造成  数据库死锁,导致下次无法正常更新。

死锁的概念就是类似git中的lock,操作残留 或者 互斥。

解决办法:

public void updateAllInfo(List<TestModel> list) throws IOException{
        SqlSessionFactory sqlSessionFactory = getSqlFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        for(TestModel testModel : list){
            System.out.println(testModel);

            try {
                sqlSession.update("cn.td.dao.updatetest",testModel);
            } catch (Exception e) {
                sqlSession.rollback();
                e.printStackTrace();
            }
            
            sqlSession.commit();
        }
        sqlSession.close();
    }

事务回滚。

mybatisupdate不生效

参考技术A你好,很高兴回答你的问题。不生效指的是什么呢,是执行后没有数据被更新吗?那可能是没有符合where条件的数据。如果有帮助到你,请点击采纳。 查看详情

mybatisupdate返回值怎么配置

你可以把defaultExecutorType值改了。有三个值:SIMPLE 普通返回。REUSE 重复。BATCH 批量更新。MyBatis发现更新和插入返回值一直为"-2147482646"的错误是由defaultExecutorType设置引起的,如果设置为batch,更新返回值就会丢... 查看详情

mybatisupdate语句问题(注解方式)

假设我有一个实体类User包含id,name,age,sex属性那么假设我只更新了sex属性,Mybatis是否能做到一个update(Useruser)方法中的语句只更新sex值,而不是所有值,如果有2个属性变化,则会更新这2个。参考技术A<updateid="放方法"param... 查看详情

mybatisupdate操作返回值问题

...的int返回值并不是影响的行数,下面通过本文给大家分享MybatisUpdate操作返回值问题,需要的朋友参考下吧 后端的数据持久化使用的是Mybatis,在做高并发下账户增减余额的时候,打算使用乐观锁来解决这个问题。在获取update... 查看详情

mybatisupdate/delete如何获取返回影响条数,在线坐等,直接配置resulttype和不配置都不行,谢谢

...回的结果不是真正更新的条数哇。。。谢谢哈 参考技术Bmybatisupdate/delete如何获取返回影响条数,在线坐等,直接配置resultType和不配置都不行。selectcount(1)fromtablewhere----,把你要更新或者删除的条件传入,查一下,那个就是影响的... 查看详情

mybatis

mybatisupdate使用场景:当使用update进行更新的时候,数据表难免会有些不被更新的字段,如create_time,这些字段只想保留第一次插入进表的值,在后续更新sql语句中,只想更新需要被更新的字段。解决办法1:<!--更新收货地址--&g... 查看详情

加入会议时无响应 SmackException NoResponseException

】加入会议时无响应SmackExceptionNoResponseException【英文标题】:NoresponsewhilejoiningconferenceSmackExceptionNoResponseException【发布时间】:2018-07-0207:47:34【问题描述】:我在加入会议聊天时遇到异常。例外:org.jivesoftware.smack.SmackException$NoRes... 查看详情

真实案例:异常断电导致虚拟机无法启动恢复成功

虚拟机数据恢复故障:发生故障的存储设备是某品牌存储EVA8400型号,由于机房意外断电导致该存储中的一台VMware虚拟机无法启动(虚拟机中存储了oracle数据库),管理员清空cache并尝试重新启动该虚拟机但失败了。需要对该无法... 查看详情

pycharmwordcloud包安装不报错但没安装成功

...下,pycharm的pythonIDE中安装wordcloud包安装不报错,但没安装成功。========================================问... 查看详情

批量更新数据不成功

问题:Excel导入用户数据,已有的用户信息更新不成功。场景:导入用户数据时,数据库已存在的数据进行更新,不存在的新增,excel表中可存在相同手机号的用户信息,以最后一条为准更新用户信息。分析:业务逻辑没有问题... 查看详情

等到firestore中的数据成功更新

】等到firestore中的数据成功更新【英文标题】:Waittilldatainfirestorehassuccessfullyupdated【发布时间】:2021-11-0913:26:14【问题描述】:我想在用户单击保存按钮时检查数据是否成功上传到Firestore如果文档没有更新,则显示toast或要求用... 查看详情

求助,mycat查询数据时有时无

...,也有可能是后台出错,请检查。3、网络不稳定,请求数据库时timeout了本回答被提问者采纳 参考技术B1,如果是全表数据,就是每个表都有的,那么出现这种情况应该是由于某些表中没有要查的数据,某些表中有要查的数据所... 查看详情

iOS:更新数据时出现CoreData异常

】iOS:更新数据时出现CoreData异常【英文标题】:iOS:CoreDataExceptionwhenupdatingdata【发布时间】:2012-03-2307:49:14【问题描述】:我正在尝试使用CoreData更新数据库中的现有记录,但在使用托管对象访问器方法时出现异常。代码摘录:N... 查看详情

zookeeper算法原理

...才认为更新成功,从而保证所有的副本一致,这样在读取数据时可以读任一副本上的数据。先做这样的约定:更新操作(write)是一系列顺序的过程,通过其他机制确定更新操作的顺序(例如primary-secondary架构中由primary决定顺序... 查看详情

成功调用ajax后数据表不更新

】成功调用ajax后数据表不更新【英文标题】:Datatabledoesnotupdateaftersuccessfulajaxcall【发布时间】:2012-02-0620:24:31【问题描述】:我有一个数据表。表的每一行都有一个名为\'Remove\'的commandButton,它应该从模型和视图中删除该行并就... 查看详情

处理支付成功但数据库更新失败

】处理支付成功但数据库更新失败【英文标题】:Handlingsuccessfulpaymentprocessingbutdatabaseupdatefailure【发布时间】:2014-10-1323:05:46【问题描述】:我正在尝试在我的express.js路由之一中实现条带结帐流程。为此,我有:官方Node.jsStripe... 查看详情

从数据库成功检索数据后,医疗 ID 片段未更新

】从数据库成功检索数据后,医疗ID片段未更新【英文标题】:MedicalIDFragmentnotupdatingaftersuccessfullyretrievingdatafromdatabase【发布时间】:2020-08-2709:24:22【问题描述】:所以我构建了一个使用片段的健康应用程序。我有一个单独的活... 查看详情

由于异常回滚后的Spring批量更新数据库状态

】由于异常回滚后的Spring批量更新数据库状态【英文标题】:Springbatchupdatedbstatusafterrollbackduetoexception【发布时间】:2020-11-1613:49:17【问题描述】:在Spring批处理Writer中,我将db行状态从0更新为1。如果发生任何异常,则更新为2。... 查看详情