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

往期精彩

01 漫談發版哪些事,好課程推薦

02 Linux的常用最危險的命令

03 互聯網支付系統整體架構詳解

04 優秀的Java程序員必須瞭解的GC哪些

05 IT大企業有哪些病,別被這些病毀了自己?

關注我每天進步一點點

你點的在看,我都當成了喜歡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章