日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

解析Mybatis的insert方法返回數字-2147482646的解決

瀏覽:31日期:2023-10-19 14:54:01

前言:前幾天在做項目demo的時候,發現有一個很奇怪的現象,就是MyBatis發現更新和插入返回值一直為'-2147482646'.無論怎么改,這個值一直不變...是在摸不著頭腦,百度和谷歌了一下,有這樣的說法原來是由defaultExecutorType設置引起的,如果設置為BATCH,更新返回值就會丟失。

If the BATCH executor is in use, the update counts are being lost.

操作:也就是說在spring的配置文件中,只要把constructor-arg中的executorType改為SIMPLE(以前的值是BATCH就會引發這個問題)或者直接注釋掉就可以了

<bean class='org.mybatis.spring.SqlSessionTemplate'> <constructor-arg name='sqlSessionFactory' ref='sqlSessionFactory'></constructor-arg> <!-- 執行類型 --> <constructor-arg name='executorType' value='SIMPLE'></constructor-arg> </bean>

這么一改果然好使,但是為啥會返回這個奇怪的數字呢?背后有啥原因,本篇博客就來研究一下為什么會返回這個數字,打開我們的idea,又到了跟蹤源碼的時候了,走起:

1:打開配置文件中的變量,看到SqlSessionTemplate這個類有個構造參數類型ExecutorType了,也就是我們配置的值,當它為BATCH的時候又會怎么樣呢?

解析Mybatis的insert方法返回數字-2147482646的解決

2:ExecutorType的參數,打開這個類發現它是個枚舉類型,也就是說它僅僅只有3種配置的值,SIMPLE、RESUME、BATCH,在配置文件中我們也只能配這三種其中的一個

解析Mybatis的insert方法返回數字-2147482646的解決

3:程序執行,可見最終操作的是SqlSession的insert方法,我們就來打開這個方法的源碼:

Reader config = Resources.getResourceAsReader('conf.xml');SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(config);SqlSession sqlSession = sessionFactory.openSession();String sql = 'com.mlxs.mybatis.test.userMapper.insertUser';int res= sqlSession.insert(sql, '1');//

4:SqlSession.insert()方法:

public interface SqlSession extends Closeable { int insert(String var1); int insert(String var1, Object var2);}

SqlSession是一個接口,里面有insert方法,我們再來看一下這個接口的實現類:

解析Mybatis的insert方法返回數字-2147482646的解決

一般在源碼中,如果沒有特殊配置肯定是采用的Default的設置,我們就來看看DefaultSqlSession的源碼:

解析Mybatis的insert方法返回數字-2147482646的解決

再找this.insert方法:

解析Mybatis的insert方法返回數字-2147482646的解決

可以看到,它調用的是this.update方法,再來找一個update方法:

解析Mybatis的insert方法返回數字-2147482646的解決

看到本質上它調用的是executor的update方法,我們再點進去看update方法:

解析Mybatis的insert方法返回數字-2147482646的解決

可以看到它是一個接口,那么肯定要找實現類了:

解析Mybatis的insert方法返回數字-2147482646的解決

這里就可以看出端倪了,如果沒有配置緩存的話,肯定用的是BaseExecutor,那么我們在配置文件中配置的是Batch,毋庸置疑它肯定是選擇BatchExecutor這個類中的update方法了:

解析Mybatis的insert方法返回數字-2147482646的解決

千呼萬喚始出來,這個奇怪的數字原來在這里出來的,其中可以看到它是固定返回的,沒有任何判斷邏輯...這樣就證明了一點,只要你的insert方法在配置文件中配置的是batch,那么它肯定返回這個值!

5:當配置為simple返回的是什么?

根據上面的經驗,這里我們直接看SimpleExecutor方法就行了:

解析Mybatis的insert方法返回數字-2147482646的解決

接著再看StatementHandler就知道了:

解析Mybatis的insert方法返回數字-2147482646的解決

我找到了SimpleStatementHandler的update方法,可以看到它返回是statement.getUpdateCount返回的數字,也就是實際影響的行數,那么就是正常的數值。

總結:

本篇博客記錄了一次源碼追蹤的過程,從而解釋了為什么配置BATCH返回的是這個數字的原因,在實際的編程中,可能會遇到很多奇怪的問題,這時候就要敢于翻源碼,答案一定在源碼中,才能從根本上知道產生問題的原因。

到此這篇關于解析Mybatis的insert方法返回數字-2147482646的解決的文章就介紹到這了,更多相關Mybatis insert返回內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美一区三区| 国产一区成人| 久久99蜜桃| 蜜桃av.网站在线观看| 日韩在线高清| 婷婷综合激情| 亚洲欧洲日韩| 久久久国产精品网站| 在线一区视频观看| 男人操女人的视频在线观看欧美| 日本在线观看不卡视频| 久久精品国产精品亚洲毛片| 欧美日韩亚洲一区在线观看| 国内精品福利| 亚洲精品国产日韩| 久久精品天堂| 久久性天堂网| 国产中文字幕一区二区三区| 欧美久久精品一级c片| 蜜桃久久精品一区二区| 国产日韩免费| 国精品一区二区| 久久99久久久精品欧美| 亚洲电影在线一区二区三区| 国产精品一在线观看| 欧美丝袜一区| 免费看久久久| 免费人成在线不卡| 久久久男人天堂| 欧美性www| 一区二区三区四区在线观看国产日韩| 精品中文在线| 日本精品一区二区三区在线观看视频| 一区二区三区四区日本视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 免费在线亚洲欧美| 亚洲tv在线| 在线一区欧美| 欧美中文字幕一区二区| 97精品中文字幕| 美女视频黄久久| 欧美日韩亚洲一区三区| 亚洲免费毛片| 婷婷综合电影| 日韩欧美中文字幕电影 | 久久婷婷av| 在线天堂中文资源最新版| 亚洲影视一区二区三区| 欧美日韩国产传媒| 99久久夜色精品国产亚洲狼 | 欧美13videosex性极品| 国产一区2区在线观看| 国产精品视频一区二区三区 | 日韩精品a在线观看91| 视频一区中文字幕国产| 午夜日本精品| 久久性天堂网| 亚洲三级视频| 欧美亚洲tv| 里番精品3d一二三区| 国产精品一区二区三区av| 国产精品麻豆成人av电影艾秋| 国产精品丝袜在线播放| 日韩成人午夜精品| 国产精品天堂蜜av在线播放| 精品国产一级| 电影天堂国产精品| 亚洲一区日本| 少妇精品久久久一区二区三区| 蜜桃免费网站一区二区三区| 日韩高清在线不卡| 欧美1区2区3| 日本精品不卡| 日韩一级精品| 久久激情av| 日本а中文在线天堂| 国产毛片久久| 国产区精品区| 久久精品国产99久久| 日本精品黄色| av最新在线| 亚洲一区二区三区高清不卡| 日韩高清二区| 精品视频自拍| 亚洲欧美日本日韩| 国产精品1区在线| 亚洲免费观看| 国产在视频一区二区三区吞精| 樱桃成人精品视频在线播放| 国产精品草草| 免费精品视频在线| 91欧美极品| 日韩一区二区久久| 国内精品伊人| 日韩精品高清不卡| 99视频精品| 成人午夜精品| 欧美黄页在线免费观看| 五月天激情综合网| 国产中文欧美日韩在线| 日本免费一区二区视频| 精品日韩毛片| 韩国三级一区| 成人国产综合| 国产精品日本一区二区三区在线| 好看的亚洲午夜视频在线| 久久精品国产99国产| 日韩国产欧美视频| 蜜臀a∨国产成人精品| 欧美a级片一区| 中文字幕系列一区| 色爱综合网欧美| 久久精品日韩欧美| 国产亚洲久久| 日本aⅴ亚洲精品中文乱码| 国产精品呻吟| 久久都是精品| 亚洲精品婷婷| 亚洲精一区二区三区| 亚洲精品伦理| 国产亚洲欧美日韩精品一区二区三区 | 国产一区二区精品福利地址| 日韩精品一卡二卡三卡四卡无卡| 欧美中文字幕一区二区| 国产一区亚洲| 亚洲免费高清| 日本v片在线高清不卡在线观看| 三级久久三级久久久| 久久精品 人人爱| 加勒比视频一区| 欧美sm一区| 蜜桃久久av一区| 国产欧美日韩一区二区三区四区 | 国产精品99久久免费| 国产精品成久久久久| 丝袜美腿诱惑一区二区三区 | 国产探花一区| 国产成人精品一区二区三区在线| 国产一区二区三区久久| 久久精品高清| 日本欧美久久久久免费播放网| 91成人在线精品视频| 国产一区2区| 亚洲免费在线| 麻豆视频观看网址久久| 欧美日韩高清| 国产日产精品一区二区三区四区的观看方式| 国产精品啊v在线| 91精品91| 久久久国产精品网站| 日韩视频在线一区二区三区 | 欧美精品九九| 国产一区 二区| av在线日韩| 91嫩草精品| 国产精品腿扒开做爽爽爽挤奶网站| 欧美一区二区三区久久| 成人日韩在线观看| 国产剧情一区| 亚洲综合精品四区| 亚洲综合在线电影| 欧美激情 亚洲a∨综合| 男人操女人的视频在线观看欧美| 日韩成人精品一区| 欧美日韩伊人| 国产资源在线观看入口av| 免费人成精品欧美精品| 最新日韩欧美| 一区二区三区四区在线看| 伊人久久视频| 日韩三区免费| 国产精品久久久久久模特| 视频一区二区不卡| 国产精品国码视频| 久久99久久久精品欧美| 国产欧美丝祙| 亚洲ww精品| 国产午夜久久| 国产一区日韩欧美| 毛片在线网站| 天堂√中文最新版在线| 牛牛精品成人免费视频| 蜜桃av一区二区三区电影| 亚洲成av人片一区二区密柚| 麻豆精品99| 久久精品国产99| 你懂的亚洲视频| 久久99视频| 久久天堂影院| 捆绑调教美女网站视频一区| 欧美精品中文| 国产精品三p一区二区| 国产日韩中文在线中文字幕| 欧美日韩国产一区二区在线观看| 91麻豆精品激情在线观看最新| 亚洲精品国产精品粉嫩| 日韩国产91| 免费观看亚洲天堂| 荡女精品导航| 群体交乱之放荡娇妻一区二区|