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

本文介绍了Spring Boot集成通用Mapper的步骤,包括引入启动依赖、更换mapper扫描、让dao层mapper继承通用mapper、在pojo类指定表和主键、在service调用接口,最后启动服务器测试。还提到service中自动注入报红但不影响运行,暂未找到解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:引入启动依赖

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

同样是可以查出来的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值