mybatisX插件的使用,以及打包成配置

装mybatisX插件;
idea连接数据库;
点击mybatisx-generator,设置自己装mybatisX插件;
idea连接数据库;
点击mybatisx-generator,设置自己要的包和类;

如果要把自己的配置设置成一个自定义模板:

1、 使用idea链接数据库
要的包和类;

如果要把自己的配置设置成一个自定义模板:

一、使用idea链接数据库

在这里插入图片描述
在这里插入图片描述

二、安装mybatis-X插件

File–>Settings–>Plugins–>Marketplace,=,搜索MyBatisX–>install
在这里插入图片描述

三、生成代码内容

3.1 配置本地驱动包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 侧边栏打开数据库,选择要生成代码的表格,在表名上右击,点击MybatisX-Generator

在这里插入图片描述

3.3 设置类名生成规则及生成代码的路径

路径的生成按照物理路径是: module path --》 base path --》base package
(这里注意如果想实体类带Entity后缀,在extra class suffix一栏填上Entity即可)
在这里插入图片描述

3.4 生成代码

在这里插入图片描述
template:

  • custom-model-swagger:生成实体文件,属性上会自动增加swagger的相关注解,
  • default-all:生成实体文件、xml文件和dao层接口文件, 默认会生成常用的增删改查到的方法
  • mybatis-plus3:生成实体文件、xml文件、dao层接口文件、 service层接口文件和service层接口实现文件

3.4.1 mybatis-plus3案例

在这里插入图片描述
在这里插入图片描述

3.4.2 效果代码

实体类:
在这里插入图片描述

mapper接口:
在这里插入图片描述

service层:
在这里插入图片描述
在这里插入图片描述

xml文件:
在这里插入图片描述

四、配置文件

4.1 默认的mybatis-plus3模板

模板文件包含:
在这里插入图片描述

4.1.1 .meta.xml以及xx.ftl概览

在这里插入图片描述
从上图中可以看到,此模板生成了四个文件,加上我们的entity,一共是5个。

serviceInterface.ftl:
在这里插入图片描述
serviceImpl.ftl:

package ${baseInfo.packageName};

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${tableClass.fullClassName};
import ${serviceInterface.packageName}.${serviceInterface.fileName};
import ${mapperInterface.packageName}.${mapperInterface.fileName};
<#if baseService??&&baseService!="">
import ${baseService};
    <#list baseService?split(".") as simpleName>
        <#if !simpleName_has_next>
            <#assign serviceSimpleName>${simpleName}</#assign>
        </#if>
    </#list>
</#if>
import org.springframework.stereotype.Service;

/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service实现
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
@Service
public class ${baseInfo.fileName} extends ServiceImpl<${mapperInterface.fileName}, ${tableClass.shortClassName}>
    implements ${serviceInterface.fileName}{

}

mapperInterface.ftl:

package ${mapperInterface.packageName};

import ${tableClass.fullClassName};
<#if tableClass.pkFields??>
    <#list tableClass.pkFields as field><#assign pkName>${field.shortTypeName}</#assign></#list>
</#if>
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Mapper
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
* @Entity ${tableClass.fullClassName}
*/
public interface ${mapperInterface.fileName} extends BaseMapper<${tableClass.shortClassName}> {

}

mapperXml.ftl:
在这里插入图片描述

4.2 我的mybatis-plus3模板

要点:把service改为repository,作为仓储层,而不是业务层。
在这里插入图片描述
.meta.xml:

<?xml version="1.0" encoding="utf-8" ?>
<templates>
    <template>
        <property name="configName" value="repositoryInterface"/>
        <property name="configFile" value="repositoryInterface.ftl"/>
        <property name="fileName" value="${domain.fileName}Repository"/>
        <property name="suffix" value=".java"/>
        <property name="packageName" value="${domain.basePackage}.domain.gateway.db"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="${domain.basePath}"/>
    </template>
    <template>
        <property name="configName" value="repositoryImpl"/>
        <property name="configFile" value="repositoryImpl.ftl"/>
        <property name="fileName" value="${domain.fileName}RepositoryImpl"/>
        <property name="suffix" value=".java"/>
        <property name="packageName" value="${domain.basePackage}.infrastructure.repository"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="${domain.basePath}"/>
    </template>
    <template>
        <property name="configName" value="mapperInterface"/>
        <property name="configFile" value="mapperInterface.ftl"/>
        <property name="fileName" value="${domain.fileName}Mapper"/>
        <property name="suffix" value=".java"/>
        <property name="packageName" value="${domain.basePackage}.infrastructure.repository.mybatis.mapper"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="${domain.basePath}"/>
    </template>
    <template>
        <property name="configName" value="mapperXml"/>
        <property name="configFile" value="mapperXml.ftl"/>
        <property name="fileName" value="${domain.fileName}Mapper"/>
        <property name="suffix" value=".xml"/>
        <property name="packageName" value="mapper"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="src/main/resources"/>
    </template>
</templates>

mapperInterface.ftl:
略,和4.1相同;

mapperXml.ftl:
略,和4.1相同;

repositoryInterface.ftl:

package ${baseInfo.packageName};

import ${tableClass.fullClassName};
<#if baseService??&&baseService!="">
import ${baseService};
    <#list baseService?split(".") as simpleName>
        <#if !simpleName_has_next>
            <#assign serviceSimpleName>${simpleName}</#assign>
        </#if>
    </#list>
</#if>
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
public interface ${baseInfo.fileName} extends IService<${tableClass.shortClassName}> {

}

其实和4.1也是一样的,不同的是.meta.xml里的参数变了:
在这里插入图片描述
repositoryImpl.ftl:

package ${baseInfo.packageName};

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${tableClass.fullClassName};
import ${repositoryInterface.packageName}.${repositoryInterface.fileName};
import ${mapperInterface.packageName}.${mapperInterface.fileName};
<#if baseService??&&baseService!="">
import ${baseService};
    <#list baseService?split(".") as simpleName>
        <#if !simpleName_has_next>
            <#assign serviceSimpleName>${simpleName}</#assign>
        </#if>
    </#list>
</#if>
import org.springframework.stereotype.Service;

/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service实现
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
@Service
public class ${baseInfo.fileName} extends ServiceImpl<${mapperInterface.fileName}, ${tableClass.shortClassName}> implements ${repositoryInterface.fileName}{

}

同上,和4.1也是一样的,不同的两点:

  1. 是.meta.xml里的参数变了;
  2. import里的导入类全路径引用变了;

在这里插入图片描述
在这里插入图片描述

五、打包配置,一键给其他人复用

在这里插入图片描述
以我的【mybatis-plus3-20230824】为例:
在这里插入图片描述
其他人把压缩包解压到对应的位置即可。

六、我的模板

等待补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值