SpringBoot12-集成mybatis的通用mapper(只能单表操作)

    xiaoxiao2023-11-16  168

    第一步:引入启动依赖

    这里因为我原来引入了一个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

    同样是可以查出来的

    最新回复(0)