獲取mybatis的update行數,總是返回負數。後來在官網上找到原因,是由於defaultexecutortype的引起的,defaultexecutortype有三個執行器******、reuse和batch。其中batch可以批量更新操作快取sql以提高效能,但是有個缺陷就是無法獲取update、delete返回的行數。defaultexecutortype的預設執行器是******。
名稱描述
******
執行器執行其它語句
reuse
可能重複使用prepared statements 語句
batch
可以重複執行語句和批量更新
由於專案配置中啟用了batch執行器,update和delete返回的行數就丟失了,把執行器改為******即可。
<?xml version="1.0" encoding="utf-8" ?>
name="cacheenabled"
value="true" />
name="lazyloadingenabled"
value="true" />
name="aggressivelazyloading"
value="false" />
name="multipleresultsetsenabled"
value="true" />
name="usecolumnlabel"
value="true" />
name="usegeneratedkeys"
value="true" />
value="full" />
name="defaultstatementtimeout"
value="25000" />
settings>
interceptor="com.rvho.mybatis.interceptor.mybatispageinterceptor">
name="databasetype"
value="mysql"/>
plugin>
plugins>
configuration>
mybatis批量update實現及出現的問題
本地mysql版本 5.7.26 1 首先在連線資料庫的時候需要新增引數 allowmultiqueries true因為預設是只允許批量修改一條的,需要改為true int updatebatch listmypojolist 3 配置檔案xml中 update my table setname ...
mybatis執行原理
1 獲取sqlsessionfactory物件 解析檔案的每乙個資訊儲存在configuration中,返回包含configuration的defaultsqlsessionfactory 2 獲取sqlsession物件 返回乙個defaultsqlsession物件,包含executor和con...
mybatis執行流程
記錄一下自己對mybatis的理解和心得.是自己手寫的乙個mybatisdemo,比較簡陋,只有乙個簡單的查詢語句,但是麻雀雖小五臟俱全,可以理解整個mybatis的執行流程.載入全域性配置檔案 將配置檔案載入到inputstream中,dcoumentutils將stream轉換為document...