springboot中的通用mapper的使用步骤
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使用
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。