1. 程式人生 > >mybatis顯示修改資料庫成功, 但沒有修改資料庫的原因 (mybatis可以查詢但無法修改資料庫)

mybatis顯示修改資料庫成功, 但沒有修改資料庫的原因 (mybatis可以查詢但無法修改資料庫)

剛開始接觸mybatis的時候, 遇到一個情況, 就是查詢資料庫沒問題, 但是修改資料庫(增刪改)卻會出錯, 

而且返回結果顯示修改成功,實際卻沒成功, 例如執行以下程式碼,先新增一個使用者zhangsan(密碼123), 並隨後查詢其密碼

 

控制檯顯示結果執行成功,且查詢zhangsan的密碼結果正確


但是如果進入資料庫看,就會發現資料庫沒有新增zhangsan的資料, 然後再次呼叫方法查詢zhangsan的密碼的時候, 顯示結果是null


這個原因是因為mybatis預設不是自動提交事務的, 所以其實沒有修改資料庫, 
剛剛新增完後立即返回的結果,是從mybatis為了提高效能設定的快取裡讀取的,不是從資料庫讀取的

解決的辦法一是在openSession() 的括號裡寫true, 設定自動提交事務, 一是在程式碼中加入sqlSession.commit()

設定自動提交openSession( autoCommit=true)


程式碼裡寫上sqlSession.commit()