91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis執行update失敗怎么解決

發布時間:2021-09-01 21:05:10 來源:億速云 閱讀:479 作者:chen 欄目:開發技術

本篇內容介紹了“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失敗怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍山县| 炎陵县| 松阳县| 贵州省| 夏邑县| 孟津县| 宾阳县| 南召县| 嘉善县| 迁安市| 四会市| 婺源县| 温州市| 望都县| 金沙县| 铁岭市| 雅安市| 乌兰县| 福州市| 龙州县| 淳化县| 新闻| 安庆市| 东方市| 鄂托克前旗| 肥城市| 于田县| 武鸣县| 隆昌县| 谢通门县| 东丽区| 论坛| 西宁市| 武功县| 榕江县| 鹤庆县| 揭西县| 调兵山市| 沁水县| 河北区| 连州市|