Mybatis-X插件自动生成代码的使用详解(小白专用)

Mybatis-X插件自动生成代码的使用详解(小白专用)

1、 使用idea链接数据库

MySQL:详见使用idea链接MySQL数据库并生成实体类
idea链接数据库之后也提供了一个生成实体类的方法,见↑
SQLserver:idea连接Sqlserver数据库

2、安装mybatis-X插件

File–>Settings–>Plugins–>Marketplace,=,搜索MyBatisX–>install
Mybatis-X插件自动生成代码的使用详解(小白专用)_第1张图片

3、生成代码内容

3.1 侧边栏打开数据库,选择要生成代码的表格,在表名上右击,点击MybatisX-Generator
Mybatis-X插件自动生成代码的使用详解(小白专用)_第2张图片

3.2 设置类名生成规则及生成代码的路径
路径的生成按照物理路径是: module path --》 base path --》base package
(这里注意如果想实体类带Entity后缀,在extra class suffix一栏填上Entity即可)
Mybatis-X插件自动生成代码的使用详解(小白专用)_第3张图片

3.3 生成代码
注意mybatis-plus的版本是2还是3,引用的包不一样,可以看看其他类,plus3的包多一层

// mybatis-plus2
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.service.IService;
import com.baomidou.mybatisplus.mapper.BaseMapper;

// mybatis-plus3
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

Mybatis-X插件自动生成代码的使用详解(小白专用)_第4张图片

template:

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

不需要的文件可以点击“-”删除掉,根据所需生成想要的代码,除了上一页选上的实体类外,本页面至少再选择一个文件,不能只生产实体类

3.4 效果代码
Mybatis-X插件自动生成代码的使用详解(小白专用)_第5张图片

实体类
Mybatis-X插件自动生成代码的使用详解(小白专用)_第6张图片
mapper接口
Mybatis-X插件自动生成代码的使用详解(小白专用)_第7张图片
service层
Mybatis-X插件自动生成代码的使用详解(小白专用)_第8张图片
Mybatis-X插件自动生成代码的使用详解(小白专用)_第9张图片
xml文件
Mybatis-X插件自动生成代码的使用详解(小白专用)_第10张图片顺带一句:这里的子标签可以结合标签引入代码段,可以提高效率、简化代码、提高可读性


<sql id="Base_Column_List">
        carnumber,cartype,color,
        price,rentprice,deposit,
        status,description,carimg
sql>
<select id="getCarById" parameterType="java.lang.String" resultMap="BaseResultMap">
    select
    
    <include refid="Base_Column_List" />
    from car
    where  carnumber= #{id}
select>

4、配置文件

如果希望在生成的代码中加入自己的内容,可以选择修改配置文件,直接更改后缀为ftl的文件,欢迎大家交流好的配置内容
Mybatis-X插件自动生成代码的使用详解(小白专用)_第11张图片-------------------------------------------------------------------------------------------------------------------------------------------------------

更新 5、生成符合阿里规范的代码

阿里规范中要求 --》 类/接口/枚举注释必须包含 作者、邮箱、创建时间、类职责描述
名字和邮箱换成你自己的,不建议用计算机的名字(PC,admin之类的)
示例
Mybatis-X插件自动生成代码的使用详解(小白专用)_第12张图片

主要是注释模板,这是mybatisplus3的,粘一下配置文件
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 : 名字
 * @Email : 邮箱
 * @Create : ${.now?string('yyyy-MM-dd HH:mm:ss')}
 * @Description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})#if>】的数据库操作Mapper
 */
public interface ${mapperInterface.fileName} extends BaseMapper<${tableClass.shortClassName}> {

}

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 : 名字
 * @Email : 邮箱
 * @Create : ${.now?string('yyyy-MM-dd HH:mm:ss')}
 * @Description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})#if>】的数据库操作Service实现
 */
@Service
public class ${baseInfo.fileName} extends ServiceImpl<${mapperInterface.fileName}, ${tableClass.shortClassName}>
    implements ${serviceInterface.fileName}{

}

serviceInterface.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 : 名字
 * @Email : 邮箱
 * @Create : ${.now?string('yyyy-MM-dd HH:mm:ss')}
 * @Description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})#if>】的数据库操作Service
 */
public interface ${baseInfo.fileName} extends IService<${tableClass.shortClassName}> {

}

你可能感兴趣的:(idea,mybatis,java,intellij-idea)