1、MyBatis配置文件开启二级缓存功能
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
2、在 Mapper 接口上使用@CacheNamespace 注解
@CacheNamespace
public interface EmployeeMapper extends MyMapper<Employee> {
}
测试:
public class CacheTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
EmployeeService employeeService = context.getBean(EmployeeService.class);
List<Employee> empList = employeeService.getAll();
for (Employee employee : empList) {
System.out.println(employee);
}
empList = employeeService.getAll();
for (Employee employee : empList) {
System.out.println(employee);
}
context.close();
}
}
控制台输出:
第一次查询
Preparing: SELECT emp_id,emp_name,emp_salary,emp_age FROM tabple_emp
Parameters:
Total: 5
Employee [empId=1, empName=newName01, empSalary=111.11, empAge=10]
Employee [empId=2, empName=newName02, empSalary=222.22, empAge=20]
Employee [empId=3, empName=newName03, empSalary=333.33, empAge=30]
Employee [empId=4, empName=kate, empSalary=2209.11, empAge=22]
Employee [empId=5, empName=justin, empSalary=4203.15, empAge=30]
第二次查询
Employee [empId=1, empName=newName01, empSalary=111.11, empAge=10]
Employee [empId=2, empName=newName02, empSalary=222.22, empAge=20]
Employee [empId=3, empName=newName03, empSalary=333.33, empAge=30]
Employee [empId=4, empName=kate, empSalary=2209.11, empAge=22]
Employee [empId=5, empName=justin, empSalary=4203.15, empAge=30]