千家信息网

Mybatis执行update失败怎么解决

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"Mybatis执行update失败怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2026年10月31日Mybatis执行update失败怎么解决

本篇内容介绍了"Mybatis执行update失败怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Mybatis执行update失败

今天在进行分布式重构项目的时候碰到一个问题,在执行sql的时候只有update不能成功,其他语句都可以正常执行,报错如下: 版本:org.mybatis:mybatis:3.4.5

接口

@UpdateProvider(type = ManagerProvider.class, method = "updateManager")int updateManager(Manager manager) throws Exception;

报错信息

Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]
org.springframework.jdbc.UncategorizedSQLException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: 不允许的操作;

uncategorized SQLException for SQL []; SQL state [99999]; error code [17090]; 不允许的操作; nested exception is java.sql.SQLException: 不允许的操作

原因

由于mybatis在执行insert和update的时候都默认生成key,然后注入,所以在执行update的时候会报错。

解决办法

在接口上增加注解 @Options(useGeneratedKeys = false),不让mybatis自动注入key,问题解决。

@UpdateProvider(type = ManagerProvider.class, method = "updateManager")@Options() //    @Options(useGeneratedKeys = false)int updateManager(Manager manager) throws Exception;

最后说明一点,版本:org.mybatis:mybatis:3.4.4这个版本没有此类问题。

Mybatis插入(更新)失败 却不报错

问题描述

mybatis进行数据插入或更新操作,方法成功执行,数据库中却不存在新数据,原本代码如下:

@Test    public void test7() throws IOException {        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();        SqlSession sqlSession = sqlSessionFactory.openSession();        EmployeeMapperDynamicSql mapper = sqlSession.getMapper(EmployeeMapperDynamicSql.class);        Employee employee = new Employee(null,"gfdhg","456dfgngh@qq.com","female",null);        mapper.addEmps(Collections.singletonList(employee));        sqlSession.close();    }

解决方案

在插入或更新语句后,增添commit,代码如下:

@Test    public void test7() throws IOException {        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();        SqlSession sqlSession = sqlSessionFactory.openSession();        EmployeeMapperDynamicSql mapper = sqlSession.getMapper(EmployeeMapperDynamicSql.class);        Employee employee = new Employee(null,"gfdhg","456dfgngh@qq.com","female",null);        mapper.addEmps(Collections.singletonList(employee));        /*添加commit*/        sqlSession.commit();        sqlSession.close();    }

"Mybatis执行update失败怎么解决"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

时候 问题 数据 版本 更新 成功 代码 内容 接口 更多 知识 语句 实用 学有所成 接下来 信息 分布式 办法 原因 原本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 蓝思科技飞鸽互联网 互联网品科技 互联网 科技创新 平安科技 互联网 喔噻互联网科技 银优互联网科技有限公司 宁波青枫互联网科技有限公司 中国的互联网科技企业的崛起 贵州叶脉互联网科技有限公司所属行业 晓花互联网科技有限公司网址 新兴科技互联网创新大赛颁奖典礼 银川新华互联网科技学校联系电话 长沙茂晟互联网科技有限公司 山东有哪些互联网科技公司 图游互联网科技 互联网科技企业商标注意事项 广西科技产业互联网是什么 米泉互联网科技专业怎么样 北京瑞云互联网科技有限公司 六子台科技互联网展会 深圳市人人互联网科技有限公司 互联网核心科技是什么 平安科技 互联网 西安互联网科技 期待互联网科技 联恩商钥互联网科技有限公司 承德科技产业互联网发展 辽宁互联网新科技 工业互联网展湾科技股份有限公司 广西泛欧互联网科技有限公司
0