最近做项目发现了mybatis的一个特性:
连续执行两次相同的查询,mybatis不会去数据库中查询,而是直接从sqlsession中取,返回的对象也是同一个对象。
如在一个类中有如下方法;
public void test(){
User user = userService.selById(id);
}
public void deduct(int id){
User user = userService.selById(id);
}
那么即使你没有将user对象做为参数传递给其他方法,在另一个方法里对user对象做的所有操作都会改变user对象,因为deduct方法里通过mybatis取到的user对象等于第一个方
法的user对象。