Mybatis-X插件自动生成代码的使用详解(小白专用)
MySQL:详见使用idea链接MySQL数据库并生成实体类
idea链接数据库之后也提供了一个生成实体类的方法,见↑
SQLserver:idea连接Sqlserver数据库
File–>Settings–>Plugins–>Marketplace,=,搜索MyBatisX–>install
3.1 侧边栏打开数据库,选择要生成代码的表格,在表名上右击,点击MybatisX-Generator
3.2 设置类名生成规则及生成代码的路径
路径的生成按照物理路径是: module path --》 base path --》base package
(这里注意如果想实体类带Entity后缀,在extra class suffix一栏填上Entity即可)
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;
template:
custom-model-swagger:生成实体文件,属性上会自动增加swagger的相关注解,
default-all:生成实体文件、xml文件和dao层接口文件,
默认会生成常用的增删改查到的方法
mybatis-plus3:生成实体文件、xml文件、dao层接口文件、
service层接口文件和service层接口实现文件
不需要的文件可以点击“-”删除掉,根据所需生成想要的代码,除了上一页选上的实体类外,本页面至少再选择一个文件,不能只生产实体类
实体类
mapper接口
service层
xml文件
顺带一句:这里的子标签可以结合标签引入代码段,可以提高效率、简化代码、提高可读性
<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>
如果希望在生成的代码中加入自己的内容,可以选择修改配置文件,直接更改后缀为ftl的文件,欢迎大家交流好的配置内容
-------------------------------------------------------------------------------------------------------------------------------------------------------
阿里规范中要求 --》 类/接口/枚举注释必须包含 作者、邮箱、创建时间、类职责描述
名字和邮箱换成你自己的,不建议用计算机的名字(PC,admin之类的)
示例
主要是注释模板,这是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}> {
}