Springboot整合通用Mapper

  一次偶然的机会接触到了通用mapper之后,就不再想用mapper.xml文件编写sql语句操作数据库了,使用通用mapper更加简洁,因为通用mapper已经封装了很多常用的sql。具体使用mapper.xml还是通用mapper可以根据实际情况进行选择。因为用着很爽,所以一直想写篇笔记记录一下项目中整合通用mapper的方法,今天得空,按照以前的习惯,还是通过一个新建项目来简单说明一下。

创建Springboot项目
1.在新建项目中勾选下面几个依赖(lombok不是整合必须的)

在这里插入图片描述

2.到maven远程仓库中下载通用mapper依赖和阿里的druid连接池依赖

  <!-- alibaba的druid数据库连接池 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.21</version>
    </dependency>

    <!-- 通用mapper-->
    <dependency>
      <groupId>tk.mybatis</groupId>
      <artifactId>mapper-spring-boot-starter</artifactId>
      <version>2.1.5</version>
    </dependency>

3.创建一个commons包,在此包中新建一个BaseMapper接口。

@Component
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {

}

4.在application.properties配置文件中配置数据库连接等信息……

server:
  port: 8082

#数据库连接信息
spring:
  #数据库
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: 数据库连接url
    username: 用户名
    password: 密码
    type: com.alibaba.druid.pool.DruidDataSource

    #mybatis和mapper相关配置
mybatis:
  type-aliases-package: org.woodside.demo.entiy
  configuration:
    #开启下划线自动转驼峰命名
    map-underscore-to-camel-case: true

mapper:
  identity: MYSQL
  #自定义的BaseMapper接口路径
  mappers: org.woodside.demo.commons.BaseMapper
  not-empty: true
  enum-as-simple-type: true

5.做完以上配置,就可以创建controller、service、serviceImpl、mapper等目录了(这里我个人习惯直接这样称呼表明视图层、持久层等)

下面是此案例的目录结构:
在这里插入图片描述
6.附上项目中各个类的代码:
  controller


@RestController
public class MpCouponController {

	@Autowired
	private MpCouponService mpCouponService;

	@ResponseBody
	@RequestMapping("/getList")
	public Object getList() {
		List<MpCoupon> mpCoupons = mpCouponService.queryList();
		return mpCoupons;
	}

}

  service

public interface MpCouponService {


	List<MpCoupon> queryList();
}

  serviceImpl

@Service
public class MpCouponServiceImpl implements MpCouponService {

	@Autowired
	private MpCouponMapper mpCouponMapper;

	@Override
	public List<MpCoupon> queryList() {
		return mpCouponMapper.selectAll();
	}
}

  mapper

@Mapper
@Component
public interface MpCouponMapper extends BaseMapper<MpCoupon> {


}

注意:
在mapper中,继承了我们自定义的BaseMapper

通过如上操作,就可以使用通用mapper中封装的增删改查方法了,避免了使用mapper.xml文件的时候,位置放在哪里合适的问题,同时项目看起来没有那么臃肿了。
在这里插入图片描述
7.启动项目,访问getList接口,返回数据正常,springboot项目整合通用mapper搞定。
在这里插入图片描述

原文地址:https://www.cnblogs.com/wgty/p/12810483.html