1.准备工作,导入相关依赖

1).引入mapper-spring-boot-starter 通用mapper的依赖,需要移除mybatis的官方的启动器
  如下
  <dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>2.0.3</version>
  </dependency>
2).同时引入mysql的依赖,因为操作数据库,springboot不知道我们要操作那个类型的数据库。
3).配置连接池,由于springboot中已经内置了一个HikariCP的连接池(不需要druid),但是所有连接池 
   都是需要指定连接池参数
   例如url driverClassName userName password。
   配置连接池参数,在springboot的application.yml核心配置文件中配置
  spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yun
    userName: root
    password: 123456

2.初级使用通用mapper

1).定义接口继承tk包下的Mapper<pojo>
2).需要在启动类上添加@MapperScan注解,也是tk包下的,目的是为了扫描到所有的Mapper接口
3).在实体类上添加注解 @Table(name="tb_user"), 在id上面添加@Id注解 ,并且开启主键回显 
   @keySql
4).最后就可以在使用@Autowired来使用Mapper对象了。

3.高级使用通用mapper

1).首先在工具类定义一个接口,命名为baseMapper,然后继承相关的接口,如下:
   package com.leyou.common.mapper;

        import tk.mybatis.mapper.additional.idlist.IdListMapper;
        import tk.mybatis.mapper.additional.insert.InsertListMapper;
        import tk.mybatis.mapper.annotation.RegisterMapper;
        import tk.mybatis.mapper.common.Mapper;

  /**
  * 在工具里中定义一个通用mapper,把常用的mapper继承进来
  */
 @RegisterMapper
 public interface BaseMapper<T,PK> extends Mapper<T>, IdListMapper<T,PK>, 
 InsertListMapper<T> {

 }
2).然后某一个工程中需要使用到这个baseMapper我们就把这工具类工程引入到这个工程中,然后定义一个 
   接口继承这个工具类的baseMapper即可,如下:
    package com.leyou.item.mapper;

    import com.leyou.common.mapper.BaseMapper;
    import com.leyou.service.pojo.Sku;

   /**
   * sku的mapper
   */
  public interface SkuMapper extends BaseMapper<Sku,Long> {
  }
3).然后就可以使用skuMapper了,可以使用相关的方法,例如根据ids查询,以及插入数据时候可以插入 
  一个list,不像Mapper<>接口提供的方法只能提供insert 或者insertSelective等,例如:
  public class test {

    @Autowired
    private BaseMapper baseMapper;
    
    //test
    public void  test(){
        String[] id={"1","2","3"};
        List<String> ids = Arrays.asList(id);
        //根据一个list集合去查询,返回的是一个list
        List list = baseMapper.selectByIdList(ids);

        //插入一个list集合的数据
        List<Spu> spulist=new ArrayList();
        Spu spu1 = new Spu();
        Spu spu2 = new Spu();
        Spu spu3 = new Spu();
        spulist.add(spu1);
        spulist.add(spu2);
        spulist.add(spu3);
        baseMapper.insertList(spulist);

    }
 

4.Example使用
20200112130213.png

20200112130709.png