Spring Boot项目通用功能之《通用Mapper》

前言

接下来这几篇文章中我们主要说说,在我们的项目中会使用哪些通用的功能,例如:通用Mapper(mybatis框架的)、通用service和分页功能等等,这些通用功能的使用会大大降低我们的开发时间,也会让我们的代码变得更加有规范更加合理,今天这篇文章我们说说怎么使用通用mapper。

通用mapper简介

通用mapper是一个国人编写的工具jar,它可以极其方便的做单表增删改查(使用Mybatis框架),目前不支持通用的多表联合查询,在使用mybatis时,就不需要重复的维护功能类似单表操作mapper.xml文件和mapper接口的定义,下面给出它的码云和github地址。

使用前疑问

  1. 这个东西使用后,会不会降低我们的代码执行效率呢?
    答:其实他的原理就是利用反射机制拼出的 XML形式的动态SQL然后去执行,所以你说代码时间消耗肯定也会有一些,但是这是很小很小的,再者在现在项目中,对于提供给前端的接口,通常都会利用些组件进行访问加速(毕竟直接从数据中检索不如在内存中来的快些),比如:redis、memcache、elastic search、solr等,所以执行效率问题是可以避免或忽略的。
  2. 如果有些方法不想使用,例如:用户的接口服务不能使用删除方法也不想暴漏出来,该怎么办呢?
    答:我们通常会定义增、删、改、查四个基础Mapper接口,你可以按需要引入进行使用,其实即使你使用了公共的CrudMapper(代表增删改查都在一起的类)也没有问题,只要你在你的service层不要放出删除方法也是可以的。

使用心得

详细使用方式其实在码云上和Github上说的也算是详细,至少基础入门是没有问题,下面我们说说在spring boot项目中的配置和使用方法。

1 首先引入包
		<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper</artifactId>
			<version>3.4.0</version><!--这里使用时去看看最新版本哈-->
		</dependency>

如果是spring boot项目直接引入:

		<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper-spring-boot-starter</artifactId>
			<version>1.2.3</version>
		</dependency>
2 增加配置类
package com.zhuma.demo.config.mybatis;

import com.zhuma.demo.comm.mapper.CrudMapper;
import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tk.mybatis.spring.mapper.MapperScannerConfigurer;

import java.util.Properties;

@Configuration
@AutoConfigureAfter(MybatisAutoConfiguration.class)
public class MyBatisConfig {
   

	@Bean
	public MapperScannerConfigurer mapperScannerConfigurer() {
   
		MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
		mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
		mapperScannerConfigurer.setBasePackage("com.zhuma.demo.mapper");

		Properties properties = new Properties();
		properties.setProperty("mappers", CrudMapper.class.getName());
		properties.setProperty("notEmpty", "false");
		properties.setProperty("IDENTITY", "MYSQL");
		properties.setProperty("ORDER","BEFORE");
		mapperScannerConfigurer.setProperties(properties);
		return mapperScannerConfigurer;
	}

}

备注

  • 这里需要注意的是MapperScannerConfigurer 类是tk.mybatis.spring.mapper这个包下的
  • mapperScannerConfigurer.setBasePackage(“com.zhuma.demo.mapper”),这里去配置你自己数据库对应Mapper类的包路径,如果有多个用英文逗号分隔
  • 上面配置类中引入了一个CrudMapper类,这个是我们自己定义的它是提供增删改查的基础接口,下面会给出详细代码。(注意不要跟自定义功能mapper放到这个下面)
3 常规方法接口整合到自己的自定义Mapper接口上

备注:因为我们使用的是mysql数据库,所以在使用通用功能的时候就选择性引入一些经常使用的方法,下面是自己定义的常用mapper类的整合(这里会抛弃一些不常用的类或不是mysql的方法类)。
① 提供新增功能Mapper类:

package com.zhuma.demo.comm.mapper;

import tk.mybatis.mapper.common
  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值