前言
2021SC@SDUSC
概述
在上一次的代码分析中,对Mapper层的关键代码以及部分注解的内部实现原理进行了分析,我们可以看到Mapper层作为与数据库交互的层,为Service层提供服务,同时由于使用了mybatis框架结合spring boot的注解形式,极大的简化了代码量和代码的复杂程度,那么我们这一次将对Springboot集成mybatis 注解的使用和内部原理进行分析,完成对Mapper层源码分析的收尾。
源码
import cn.sdu.sdupta.domain.Role;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface RoleMapper {
@Select("SELECT role FROM role WHERE id IN (SELECT role_id FROM user_role WHERE user_id = #{id})")
List<String> selectRolesByUserId(Integer userId);
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("INSERT INTO role SET role = #{role}")
boolean createRole(Role role);
@Select("SELECT