专栏首页JAVA乐园SpringBoot集成tkMybatis插件

SpringBoot集成tkMybatis插件

阅读文本大概需要3分钟。

通用 Mapper4 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example相关的单表操作。通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。

仓库:https://github.com/abel533/Mapper

0x01:引入TkMybatis的Maven依赖

    <!--添加tk-mapper依赖-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

0x02:实体类的相关配置@Id、@Table

package com.crazy.gateway.dto;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 
 * @author 2230
 *
 */
@Table(name="t_gateway_auth_channel")
public class GatewayAuthChannelDto implements Serializable{

    private static final long serialVersionUID = 6977508213718572302L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY,generator = "JDBC")
    private Long id;

    private String channelCode;

    private String appkey;

    private String appsecret;

    /**
     * 启用状态 0禁用 1启用
     */
    private int enableStatus;

    /**
     * 公钥
     */
    private String pubKey;

    /**
     * 私钥
     */
    private String priKey;

    /**
     * 加密类型 rsa, aes
     */
    private String encryptType;

    /**
     * 删除状态 0删除 1正常
     */
    private String status;

    /**
     * 说明
     */
    private String remark;

    private Date createDate;

    private String createUser;

    private Date updateDate;

    private String updateUser;

    //省略 get  set

}

0x03:Mapper继承tkMabatis的Mapper接口

package com.crazy.gateway.mapper;


import org.apache.ibatis.annotations.Select;

import com.crazy.gateway.dto.GatewayAuthChannelDto;
import com.github.pagehelper.Page;

import tk.mybatis.mapper.common.Mapper;

/**
 * 网关 appkey  appsecret 认证
 * 
 * @author 2230
 *
 */
public interface GatewayAuthChannelMapper extends Mapper<GatewayAuthChannelDto> {

     @Select("SELECT * FROM t_gateway_auth_channel")
    Page<GatewayAuthChannelDto> getGatewayAuthChannelPageList();
}

0x04:启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口

package com.crazy.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

import tk.mybatis.spring.annotation.MapperScan;

@EnableEurekaClient
@MapperScan("com.crazy.gateway.mapper")
@SpringBootApplication
public class ServiceApplication {

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

}

0x05:在application.yml配置文件中,配置mapper.xml文件指定的位置

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.crazy.gateway.dto

0x06: 使用tkMybatis提供的通用方法执行sql

package com.crazy.gateway.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;
import com.crazy.gateway.dto.GatewayAuthChannelDto;
import com.crazy.gateway.form.GatewayAuthPageForm;
import com.crazy.gateway.mapper.GatewayAuthChannelMapper;
import com.crazy.gateway.service.GatewayAuthChannelService;

@Service
public class GatewayAuthChannelServiceImpl implements GatewayAuthChannelService {

    private Logger log = LoggerFactory.getLogger(GatewayAuthChannelServiceImpl.class);

    @Autowired
    private GatewayAuthChannelMapper gatewayAuthChannelMapper;

    @Override
    public boolean addGatewayAuthChannel(GatewayAuthChannelDto gatewayAuthChannelDto) {
        int result = gatewayAuthChannelMapper.insert(gatewayAuthChannelDto);
        return result > 0;
    }

    @Override
    public boolean editGatewayAuthChannel(GatewayAuthChannelDto gatewayAuthChannelDto) {
        int result = gatewayAuthChannelMapper.updateByPrimaryKey(gatewayAuthChannelDto);
        return result > 0;
    }

    @Override
    public boolean delGatewayAuthChannel(Long id) {
        int result = gatewayAuthChannelMapper.deleteByPrimaryKey(id);
        return result > 0;
    }

}

tkMybatis插件对应单表操作相对强大,对减少工作有非常大的作用。更详细的说明可以参考:

https://www.oschina.net/news/94347/mapper-4-0-released

本文分享自微信公众号 - JAVA乐园(happyhuangjinjin88),作者:java乐园

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot项目使用配置中心Nacos

    从实体类可以知道表格很简单就只有id、username、password三个字段。

    java乐园
  • jmeter参数化csv+用户参数配合(请求加密,返回解密)

    1. 所有的接口都经过网关,意味着:入参和出参都需要加密,是所有的参数而不是单个参数的加密;

    java乐园
  • Jmeter:Beanshell调用java代码的三种方式

    props.get("START.YMD"); //获取属性 START.YMD 的值(脚本启动日期)

    java乐园
  • RxJava2和Retrofit2封装教程(整洁、简单、实用)

    RxJava2与Retrofit2是老搭档了,之前写了一篇《RxJava和Retrofit2的统一处理单个请求》,是用的Rxjava1.0,本次使用Rxjava...

    砸漏
  • Android仿微信语音消息的录制和播放功能

    长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态生成录音文件,开始录音;

    砸漏
  • RxJava和Retrofit2的统一处理单个请求示例详解

    RxJava和Retrofit2用了一段时间了,写个小例子,分享出来,有什么不对的地方还请大神在评论区指正。

    砸漏
  • Android仿QQ微信实时监测网络状态

    先简单说一下思路:网络变化时系统会发出广播。所以我们监听这个广播,利用接口回调通知activity做相应的操作就好了。

    砸漏
  • 如何用JavaScript判断前端应用运行环境(移动平台还是桌面环境)

    我们部署在某些云平台或者Web服务器上的前端应用,既可以用PC端浏览器访问,也可以用手机上的浏览器访问。

    Jerry Wang
  • 如何用JavaScript判断前端应用运行环境(移动平台还是桌面环境)

    我们部署在某些云平台或者Web服务器上的前端应用,既可以用PC端浏览器访问,也可以用手机上的浏览器访问。

    Jerry Wang
  • PHP-判断语句

    cwl_java

扫码关注云+社区

领取腾讯云代金券