剛開始接觸mybatis的時候, 遇到一個情況, 就是查詢數(shù)據(jù)庫沒問題, 但是修改數(shù)據(jù)庫(增刪改)卻會出錯,
而且返回結(jié)果顯示修改成功,實際卻沒成功, 例如執(zhí)行以下代碼,先新增一個用戶zhangsan(密碼123), 并隨后查詢其密碼

image.png
控制臺顯示結(jié)果執(zhí)行成功,且查詢zhangsan的密碼結(jié)果正確

image.png
但是如果進入數(shù)據(jù)庫看,就會發(fā)現(xiàn)數(shù)據(jù)庫沒有新增zhangsan的資料, 然后再次調(diào)用方法查詢zhangsan的密碼的時候, 顯示結(jié)果是null

image.png
這個原因是因為mybatis默認不是自動提交事務(wù)的, 所以其實沒有修改數(shù)據(jù)庫,
剛剛新增完后立即返回的結(jié)果,是從mybatis為了提高性能設(shè)置的緩存里讀取的,不是從數(shù)據(jù)庫讀取的
解決的辦法一是在openSession() 的括號里寫true, 設(shè)定自動提交事務(wù), 一是在代碼中加入sqlSession.commit()
設(shè)定自動提交openSession( autoCommit=true)

image.png
代碼里寫上sqlSession.commit()

image.png