1、首先创建环境添加pom.xml依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2、配置application.yml配置数据源和mybatis的配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://8.129.215.115:3306/cache?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
mybatis:
mapper-locations: classpath:mybatis/*Mapper.xml
type-aliases-package: com.atguigu.cache.entity
configuration:
map-underscore-to-camel-case: true #开启驼峰命名规则
logging:
level:
com.atguigu.cache.mapper: debug
3、编写数据库对应的实体类![]()
4、编写实体类对应Mapper接口
@Mapper
public interface EmployeeMapper {
@Select("select *from employee where id = #{id}")
Employee getEmpById(Integer id);
@Update("update employee set lastName = #{lastName},email=#{email},gender=#{gender}.d_id=@{dId}")
Employee updateEmp(Employee employee);
@Delete("delete from employee where id =@{id}")
Integer deleteEmpById(Integer id);
@Insert("insert into employee (lastName,email,gender,d_id) values (#{lastName},#{email},#{gender},#{dId})")
Integer insertEmp(Employee employee);
}
5、扫描Mapper接口所在的包
![]()
6、controller测试
@RestController
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@GetMapping(value = "/get/{id}")
public Employee getEmpById(@PathVariable("id") Integer id) {
System.out.println("查询" + id+ "员工");
Employee empId = employeeService.getEmpId(id);
return empId;
}
@GetMapping(value = "/insertEmp")
public Integer insertEmp(Employee employee) {
Integer integer = employeeService.insertEmp(employee);
return integer;
}
}
7、缓存注解的使用
![]()
8、@Cacheable注解的使用
![]()
9、创建自定义key的生成策略
@Configuration
public class MyKeyGenerator {
@Bean
public KeyGenerator keyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object o, Method method, Object... objects) {
return method.getName()+"["+ Arrays.asList(objects).toString()+"]";
}
};
}
}
10、使用key的生成策略
![]()
11、@CachePut的使用方法
![]()
12、使用@CacheEvict注解的使用
![]()
13、@Caching注解的使用
![]()
14、@CacheConfig注解的使用
![]()