美文网首页
mybatis之通用Mapper

mybatis之通用Mapper

作者: 李霖神谷 | 来源:发表于2019-12-01 17:23 被阅读0次

1.为什么要使用同用mapper,当你的实体类需要添加字段的时候,你对应的mapperxml文件也需要跟着修改。而通用mapper的使用不需要你书写sql语句。Mapper中已经封装好了关于增删改查的sql操作。
添加依赖:

<dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

实体类需要添加表名,不然会默认首字母小写的表名


@Data
@Table(name="people")
public class People {
    private  String name;
    private Integer age;
}

此时的mapper层只需要继承mapper即可

package com.shuai.tkmapper;
import com.shuai.entity.People;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
@Service
public interface TkMapper extends  Mapper<People>,MySqlMapper<People>{
}

通过看源码发现查找的方法有:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package tk.mybatis.mapper.common.base;
@RegisterMapper
public interface BaseSelectMapper<T> extends SelectOneMapper<T>, SelectMapper<T>, SelectAllMapper<T>, SelectCountMapper<T>, SelectByPrimaryKeyMapper<T>, ExistsWithPrimaryKeyMapper<T> {
}

配置文件:

#tkmapper配置
mapper.mappers=com.shuai.tkmapper.TkMapper
mapper.identity=MYSQL

启动类:

@SpringBootApplication
@MapperScan(basePackages = "com.shuai.tkmapper")
public class TkmapperrApplication {

    public static void main(String[] args) {
        SpringApplication.run(TkmapperrApplication.class, args);
    }

}

这里要注意,启动类的Mapperscan需要是tk包下面的。否则会报buildermapper错。或者在接口上添加mapper注解。

相关文章

网友评论

      本文标题:mybatis之通用Mapper

      本文链接:https://www.haomeiwen.com/subject/rwizwctx.html