第一步:引入启动依赖
这里因为我原来引入了一个mybatis的启动依赖,而这里的通用mapper依赖已经包含了mybatis的功能,所以,要把原来的那个注释掉
<!--mybatis的通用mapper依赖-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
第二步:启动类上的mapper扫描换成通用的mapper扫描(导入tk的那个包)
第三步:在dao层的mapper上直接继承通用mapper
这里继承了mapper以后,就可以直接使用里面已经继承的基本的增删改查接口了
public interface HeroMapper extends Mapper<Hero> {
public List<Hero> getAllHero();
}
第四步:在pojo类(domain)中指定数据库中的表和主键
@Table(name = "tb_hero")
@Data
public class Hero {
@Id
private Integer id;
private String username;
private String profession;
@Transient //这个注解表示,查询的时候不查询phone这个字段
private String phone;
private String email;
private String birthday;
}
第五步:在service中调用通用mapper的接口
注意点:这里的heromapper自动注入是有报红的,但是不影响运行,是编译报错,说的是在bean容器中找不到这个类,但是我们在启动类上是已经有扫描mapper的,所以我估计是通用mapper这里的问题,可以通过在mapper上添加@Repository注解解决,但是由于我的强迫症,总感觉会被重复扫描,所以这里没有加,但是报红也看着难受,目前没有找到方案解决,如果有方法,请留言交流。
@Service
public class HeroServiceImpl implements HeroService {
@Autowired
HeroMapper heroMapper;
@Override
public List<Hero> getAllHero() {
List<Hero> heroes = heroMapper.selectAll();
return heroes;
}
}
第六步:启动服务器,发送请求测试通用mapper
同样是可以查出来的