最近在學習MyBatis發現一級緩存中,換成改方法後,資料不一樣了
如下代碼所示
public void testFindAll() {
User user = userDao.findById(41);
System.out.println("第一次查詢的使用者 "+user);
//session.clearCache();//此方法也可以清空緩存
User user2 = userDao.findById(41);
System.out.println("第二次查詢使用者: "+user2);
System.out.println(user == user2);
}
這個顯示緩存沒有清除
但是在改的方法時遇到了不同
public void testFindll() {
//1.根據 id 查詢使用者
User user1 = userDao.findById(41);
System.out.println(user1);
//2.更新使用者資訊
user1.setUsername("update user clear cache");
user1.setAddress("北京市海澱區");
userDao.updateUser(user1);
//3.再次查詢 id 為 41 的使用者
User user2 = userDao.findById(41);
System.out.println(user2);
System.out.println(user1 == user2);
}
查了發現是
增删改要送出事務異常復原 不然資料庫是不改變的 查的話就不用