# 代码模板

模板使用参考扩展文档: http://zhuyizhuo.online/code-generator-doc/guide/extension.html (opens new window)

项目目前采用的 Freemarker 模板,模板语法参考 Freemarker 模板语法。

# 模板片段

# 遍历所有字段

    <#list mybatisXmlDefinition.columns as colm>
        <#if colm??>
            <#if colm_has_next>
            ${colm.columnName},
            <#else>
            ${colm.columnName}
            </#if>
        </#if>
    </#list>

# 获取表名

${tableInfo.tableName}

# 迭代主键

<#list tableInfo.primaryKeyColumns as colm>
   ${colm.columnName}  ${colm.javaColumnName}
</#list>

# 普通模板

# Model 模板

package ${javaClassDefinition.MODEL.fullPackage};

<#list tableInfo.importPackages as import>
	<#if import??>
import ${import};
	</#if>
</#list>

/**
 * ${tableInfo.tableComment} <br/>
 *
 * @author  ${classCommentInfo.author} <br/>
 * @since   ${classCommentInfo.sinceVersion} <br/>
 */
public class ${javaClassDefinition.MODEL.className} {

<#list tableInfo.columnLists as colm>
	<#if colm??>
	/** ${colm.columnComment} */
	private ${colm.javaDataType} ${colm.javaColumnName};
	</#if>
</#list>

<#list tableInfo.columnLists as colm>
	<#if colm??>
	public ${colm.javaDataType} get${colm.javaColumnName?cap_first}() {
		return ${colm.javaColumnName};
	}

	public void set${colm.javaColumnName?cap_first}(${colm.javaDataType} ${colm.javaColumnName}) {
		this.${colm.javaColumnName} = ${colm.javaColumnName};
	}
	
	</#if>
</#list>
}

# VO 模板

package ${javaClassDefinition.VO.fullPackage};

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
<#list tableInfo.importPackages as import>
	<#if import??>
import ${import};
	</#if>
</#list>

/**
 * ${tableInfo.tableComment} <br/>
 *
 * @author ${classCommentInfo.author} <br/>
 * @since  ${classCommentInfo.sinceVersion} <br/>
 */
@Data
public class ${javaClassDefinition.VO.className} implements Serializable {
    private static final long serialVersionUID=1L;

<#list tableInfo.columnLists as colm>
	<#if colm??>
	/** ${colm.columnComment} */
    @ApiModelProperty(value = "${colm.columnComment}")
	private ${colm.javaDataType} ${colm.javaColumnName};
	</#if>
</#list>

}

# Mybatis Plus 模板

# Mapper 模板

package ${javaClassDefinition.MAPPER.fullPackage};


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import ${javaClassDefinition.MODEL.fullPackage}.${javaClassDefinition.MODEL.className};
import org.apache.ibatis.annotations.Mapper;

/**
 * ${tableInfo.tableComment} Mapper
 *
 * @author  ${classCommentInfo.author} <br/>
 * @since   ${classCommentInfo.sinceVersion} <br/>
 */
@Mapper
public interface ${javaClassDefinition.MAPPER.className} extends BaseMapper<${javaClassDefinition.MODEL.className}> {

}

# Model 模板

package ${javaClassDefinition.MODEL.fullPackage};

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
<#list tableInfo.importPackages as import>
	<#if import??>
import ${import};
	</#if>
</#list>

/**
 * ${tableInfo.tableComment} <br/>
 *
 * @author  ${classCommentInfo.author} <br/>
 * @since   ${classCommentInfo.sinceVersion} <br/>
 */
@TableName("${tableInfo.tableName}")
public class ${javaClassDefinition.MODEL.className} implements Serializable {
    private static final long serialVersionUID=1L;
<#list tableInfo.primaryKeyColumns as colm>
    <#if colm??>
	/** ${colm.columnComment} */
	@TableId
	private ${colm.javaDataType} ${colm.javaColumnName};
	</#if>
</#list>
<#list tableInfo.columnLists as colm>
	<#if colm??>
    <#if (colm_index >= tableInfo.primaryKeyColumns?size)>
	/** ${colm.columnComment} */
	private ${colm.javaDataType} ${colm.javaColumnName};
	</#if>
	</#if>
</#list>

<#list tableInfo.columnLists as colm>
	<#if colm??>
	public ${colm.javaDataType} get${colm.javaColumnName?cap_first}() {
		return ${colm.javaColumnName};
	}

	public void set${colm.javaColumnName?cap_first}(${colm.javaDataType} ${colm.javaColumnName}) {
		this.${colm.javaColumnName} = ${colm.javaColumnName};
	}

	</#if>
</#list>
}

# Service 模板

package ${javaClassDefinition.SERVICE.fullPackage};

import com.baomidou.mybatisplus.extension.service.IService;
import ${javaClassDefinition.MODEL.fullPackage}.${javaClassDefinition.MODEL.className};

/**
 * ${tableInfo.tableComment} Service
 *
 * @author  ${classCommentInfo.author} <br/>
 * @since   ${classCommentInfo.sinceVersion} <br/>
 */
public interface ${javaClassDefinition.SERVICE.className} extends IService<${javaClassDefinition.MODEL.className}> {

}

# Service Impl 模板

package ${javaClassDefinition.SERVICE_IMPL.fullPackage};

import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import ${javaClassDefinition.MAPPER.fullPackage}.${javaClassDefinition.MAPPER.className};
import ${javaClassDefinition.MODEL.fullPackage}.${javaClassDefinition.MODEL.className};
import ${javaClassDefinition.SERVICE.fullPackage}.${javaClassDefinition.SERVICE.className};

/**
 * ${tableInfo.tableComment} Service 实现类
 *
 * @author  ${classCommentInfo.author} <br/>
 * @since   ${classCommentInfo.sinceVersion} <br/>
 */
@Service("${javaClassDefinition.MODEL.className?uncap_first}")
public class ${javaClassDefinition.SERVICE_IMPL.className} extends ServiceImpl<${javaClassDefinition.MAPPER.className}, ${javaClassDefinition.MODEL.className}> implements ${javaClassDefinition.SERVICE.className} {

}

# xml 模板

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${mybatisXmlDefinition.nameSpace}">

    <resultMap id="${mybatisXmlDefinition.resultMap.id}" type="${mybatisXmlDefinition.resultMap.type}">
<#list mybatisXmlDefinition.columns as colm>
    <#if colm??>
        <#if colm.primaryKey>
        <id column="${colm.columnName}" property="${colm.javaColumnName}"/>
        <#else>
        <result column="${colm.columnName}" property="${colm.javaColumnName}"/>
        </#if>
    </#if>
</#list>
    </resultMap>

</mapper>