mybatisX插件的使用及打包成配置
目录
- 一、使用idea链接数据库
- 二、安装myBATis-X插件
- 三、生成代码内容
- 3.1 配置本地驱动包
- 3.2 侧边栏打开数据库,选择要生成代码的表格,在表名上右击,点击MybatisX-Generator
- 3.3 设置类名生成规则及生成代码的路径
- 3.4 生成代码
- 3.4.1 mybatis-plus3案例
- 3.4.2 效果代码
- 四、配置文件
- 4.1 默认的mybatis-plus3模板
- 4.1.1 .meta.XML以及xx.ftl概览
- 4.2 我的mybatis-plus3模板
- 五、打包配置,一键给其他人复用
装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}; imwww.devze.comport ${mapperInt编程客栈erface.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 ${servicjseInterface.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.ephpncoding}"/> <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??&&base编程Service!=""> 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也是一样的,不同的两点:
- 是.meta.xml里的参数变了;
- import里的导入类全路径引用变了;
五、打包配置,一键给其他人复用
以我的【mybatis-plus3-20230824】为例:
其他人把压缩包解压到对应的位置即可。
到此这篇关于mybatisX插件的使用及打包成配置的文章就介绍到这了,更多相关mybatisX插件使用内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论