La nouvelle entité classe Employee.java. Les déclarations et les biens getteret setterméthode.
La mise en place d' Mapperinterfaces et d' annotation des @Mappernotes, ou peut être Springbootmarqué directement les classes de démarrage @MapperScan("com.xxx")pour la numérisation cartographe. Et utiliser des @EnableCachingannotations pour ouvrir le cache.
// 扫描 mapper 接口
@MapperScan(value = "com.fly.springbootcache.mapper")
@EnableCaching // 开启缓存
@SpringBootApplication
public class SpringBootCacheApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootCacheApplication.class, args);
}
}
En EmployeeMapper.javaajoutant des méthodes d'interface de requête
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.springframework.cache.annotation.Cacheable;
public interface EmployeeMapper {
@Options(useGeneratedKeys = true) // 使用自增主键
@Insert("INSERT INTO employee(lastName, email, gender, d_id)
values(#{lastName}, #{email}, #{gender}, #{dId})")
public void insert(Employee employee);
@Select("SELECT * FROM employee WHERE id = #{id}")
public Employee getById(Integer id);
}
Ajouter Serviceclasse et ajoutez la méthode de requête appropriée, la méthode ci - dessus et en utilisant les annotations @Cacheablepour trouver le résultat ajouté au cache, bien sûr, peut être placé sur l'annotation Mappercouche.
@Service
public class EmployeeService {
@Autowired
private EmployeeMapper employeeMapper;
@Cacheable(cacheNames = "emp") //指定缓存的名字。 默认使用传入的参数作为 key, 即 id。
public Employee getById(Integer id) {
return employeeMapper.getById(id);
}
public Employee insert(Employee employee) {
employeeMapper.insert(employee);
return employee;
}
}
Mettre en place un controller
@RestController
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@GetMapping("/emp")
public Employee insert(Employee employee) {
return employeeService.insert(employee);
}
@GetMapping("/emp/{id}")
public Employee getById(@PathVariable("id") Integer id) {
return employeeService.getById(id);
}
}
Démarrez l'application, dans le navigateur entrez le chemin d'accès pour afficher l'impression de la console SQL, la première requête imprimerait le sql, la seconde requête n'est pas imprimé sql, votre cache deuxième requête directe au lieu d'une requête de base de données.