欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis執(zhí)行update失敗的解決

 更新時(shí)間:2021年09月01日 16:43:42   作者:wgxaszc8  
這篇文章主要介紹了Mybatis執(zhí)行update失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis執(zhí)行update失敗

今天在進(jìn)行分布式重構(gòu)項(xiàng)目的時(shí)候碰到一個(gè)問題,在執(zhí)行sql的時(shí)候只有update不能成功,其他語(yǔ)句都可以正常執(zhí)行,報(bào)錯(cuò)如下: 版本:org.mybatis:mybatis:3.4.5

接口

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

報(bào)錯(cuò)信息

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在執(zhí)行insert和update的時(shí)候都默認(rèn)生成key,然后注入,所以在執(zhí)行update的時(shí)候會(huì)報(bào)錯(cuò)。

解決辦法

在接口上增加注解 @Options(useGeneratedKeys = false),不讓mybatis自動(dòng)注入key,問題解決。

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

最后說明一點(diǎn),版本:org.mybatis:mybatis:3.4.4這個(gè)版本沒有此類問題。

Mybatis插入(更新)失敗 卻不報(bào)錯(cuò)

問題描述

mybatis進(jìn)行數(shù)據(jù)插入或更新操作,方法成功執(zhí)行,數(shù)據(jù)庫(kù)中卻不存在新數(shù)據(jù),原本代碼如下:

    @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();
    }

解決方案

在插入或更新語(yǔ)句后,增添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();
    }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中Service注入多個(gè)實(shí)現(xiàn)類的方法詳解

    Spring中Service注入多個(gè)實(shí)現(xiàn)類的方法詳解

    這篇文章主要介紹了Spring中Service注入多個(gè)實(shí)現(xiàn)類的方法詳解,Spring是一個(gè)開源的Java框架,用于構(gòu)建企業(yè)級(jí)應(yīng)用程序,它提供了許多功能,如依賴注入、面向切面編程、數(shù)據(jù)訪問、Web開發(fā)等,需要的朋友可以參考下
    2023-07-07
  • SpringBoot自動(dòng)裝配之@Enable深入講解

    SpringBoot自動(dòng)裝配之@Enable深入講解

    這篇文章主要介紹了SpringBoot自動(dòng)裝配之@Enable,SpringBoot中提供了很多Enable開頭的注解,這些注解都是用于動(dòng)態(tài)啟用某些功能的。而其底層原理是使用@Import注?解導(dǎo)入一些配置類,實(shí)現(xiàn)Bean的動(dòng)態(tài)加載
    2023-01-01
  • Java實(shí)現(xiàn)畫線、矩形、橢圓、字符串功能

    Java實(shí)現(xiàn)畫線、矩形、橢圓、字符串功能

    本篇文章主要介紹了Java實(shí)現(xiàn)畫線、矩形、橢圓、字符串功能的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-05-05
  • SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA)

    SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA)

    這篇文章主要介紹了SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue中computed計(jì)算屬性和data數(shù)據(jù)獲取方式

    Vue中computed計(jì)算屬性和data數(shù)據(jù)獲取方式

    這篇文章主要介紹了Vue中computed計(jì)算屬性和data數(shù)據(jù)獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 解讀Spring接口方法加@Transactional失效的原因

    解讀Spring接口方法加@Transactional失效的原因

    這篇文章主要介紹了Spring接口方法加@Transactional失效的原因解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java8使用stream查找重復(fù)元素的方法示例

    Java8使用stream查找重復(fù)元素的方法示例

    Java?8?是一個(gè)非常成功的版本,這個(gè)版本新增的Stream,配合同版本出現(xiàn)的Lambda?,給我們操作集合(Collection)提供了極大的便利,Stream流是JDK8新增的成員,本文給大家介紹了Java8使用stream查找重復(fù)元素的方法示例,需要的朋友可以參考下
    2024-04-04
  • 可能是全網(wǎng)最詳細(xì)的springboot整合minio教程

    可能是全網(wǎng)最詳細(xì)的springboot整合minio教程

    MinIO是全球領(lǐng)先的對(duì)象存儲(chǔ)先鋒,在標(biāo)準(zhǔn)硬件上,讀/寫速度上高達(dá)183 GB/秒和171 GB/秒,下面這篇文章主要給大家介紹了關(guān)于springboot整合minio的相關(guān)資料,這個(gè)教程可能是全網(wǎng)最詳細(xì)的,需要的朋友可以參考下
    2022-06-06
  • mybatis的dtd約束文件及配置文件xml自動(dòng)提示操作

    mybatis的dtd約束文件及配置文件xml自動(dòng)提示操作

    這篇文章主要介紹了mybatis的dtd約束文件及配置文件xml自動(dòng)提示操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-12-12
  • Java經(jīng)典設(shè)計(jì)模式之模板方法模式定義與用法示例

    Java經(jīng)典設(shè)計(jì)模式之模板方法模式定義與用法示例

    這篇文章主要介紹了Java經(jīng)典設(shè)計(jì)模式之模板方法模式,簡(jiǎn)單說明了模板方法模式的原理、定義,并結(jié)合實(shí)例形式分析了java模板方法模式的具體使用方法,需要的朋友可以參考下
    2017-08-08

最新評(píng)論