easycode 自定义模板

项目使用:

controller.java.vm

##导入宏定义
$!{define.vm}

##设置表后缀(宏定义)
#setTableSuffix("Controller")

##保存文件(宏定义)
#save("/controller", "Controller.java")

##包路径(宏定义)
#setPackageSuffix("controller")

##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))

##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
#set($PkType = $!{tool.getClsNameByFullName($!tableInfo.pkColumn[0].type)})

import $!{tableInfo.savePackageName}.utils.BaseResult;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.vo.req.$!{tableInfo.name}Req;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

##表注释(宏定义)
#tableComment("表控制层")
@RestController
@Api(tags = "$!{tableInfo.comment}($!{tableInfo.name})")
@RequestMapping("$!tool.firstLowerCase($!tableInfo.name)")
public class $!{tableName}{
    /**
     * 服务对象
     */
    @Resource
    private $!{tableInfo.name}Service $!{serviceName};

    /**
     * 分页查询所有数据
     *
     * @param $!{entityName}Req 查询实体
     * @return 所有数据
     */
    @PostMapping("/selectAll")
    @ApiOperation(value = "分页查全部")
    public BaseResult selectAll(@RequestHeader Long userId, @RequestBody @ApiParam $!{tableInfo.name}Req $!{entityName}Req) {
        return BaseResult.success(this.$!{serviceName}.list$!{tableInfo.name}(userId, $!{entityName}Req));

    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @PostMapping("{id}")
    @ApiOperation(value = "根据id查")
    public BaseResult selectOne(@RequestHeader Long userId,  @ApiParam(required = true)  $!{PkType} id) {
        return BaseResult.success(this.$!{serviceName}.getById(id));
    }

    /**
     * 新增数据
     *
     * @param $!entityName 实体对象
     * @return 新增结果
     */
    @PostMapping("/add")
    @ApiOperation(value = "添加")
    public BaseResult insert(@RequestHeader Long userId, @RequestBody @ApiParam $!tableInfo.name $!entityName) {
        return BaseResult.success(this.$!{serviceName}.save($!entityName));
    }

    /**
     * 修改数据
     *
     * @param $!entityName 实体对象
     * @return 修改结果
     */
    @PostMapping("/update")
    @ApiOperation(value = "更新")
    public BaseResult update(@RequestHeader Long userId, @RequestBody @ApiParam $!tableInfo.name $!entityName) {
        return BaseResult.success(this.$!{serviceName}.updateById($!entityName));
    }

    /**
     * 删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    @PostMapping("/del")
    @ApiOperation(value = "删除")
    public BaseResult delete(@RequestHeader Long userId, @RequestBody @ApiParam List<$!{PkType}> idList) {
        return BaseResult.success(this.$!{serviceName}.removeByIds(idList));
    }
}

entity.java.vm

##导入宏定义
$!{define.vm}

##保存文件(宏定义)
#save("/entity", ".java")

##包路径(宏定义)
#setPackageSuffix("entity")

##自动导入包(全局变量)
$!autoImport
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;

import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@Data
@ApiModel("$tableInfo.comment")
@TableName(value = "$!{tableInfo.obj.name}")
public class $!{tableInfo.name} extends Model<$!{tableInfo.name}> implements Serializable {
    private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    ##if(${column.comment})/**
    ##* ${column.comment}
    ##*/#end
    
#if($column.obj.name == "id")
    @TableId(type = IdType.AUTO)
#end
    @ApiModelProperty("$column.comment")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}

mapper.xml.vm

##引入mybatis支持
$!{mybatisSupport.vm}
##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Mapping.xml"))
$!callback.setSavePath($tool.append($modulePath, $tool.append("/src/main/resources/mapper/")))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

<?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="$!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper">

    <resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)
        <result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
#end
    </resultMap>

    <!-- 批量插入 -->
    <!-- 
    <insert id="insertBatch" keyProperty="$!pk.name" useGeneratedKeys="true">
        insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)
        values
        <foreach collection="entities" item="entity" separator=",">
        (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)
        </foreach>
    </insert>
    -->
    
        <!--查询指定行数据-->
    <select id="list$!{tableInfo.name}" resultMap="$!{tableInfo.name}Map">
        select
          #allSqlColumn()

        from $!tableInfo.obj.name
        <where>
#foreach($column in $tableInfo.fullColumn)
            <if test="req.$!column.name != null#if($column.type.equals("java.lang.String")) and req.$!column.name != ''#end">
                and $!column.obj.name = #{req.$!column.name}
            </if>
#end
        </where>
    </select>

</mapper>

service.java.vm

##导入宏定义
$!{define.vm}

##设置表后缀(宏定义)
#setTableSuffix("Service")

##保存文件(宏定义)
#save("/service", "Service.java")

##包路径(宏定义)
#setPackageSuffix("service")

##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.vo.req.$!{tableInfo.name}Req;
##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {

IPage<$!{tableInfo.name}> list$!{tableInfo.name}(Long userId, $!{tableInfo.name}Req $!{entityName}Req);

}

serviceImpl.java.vm

##导入宏定义
$!{define.vm}

##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")

##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")

##包路径(宏定义)
#setPackageSuffix("service.impl")

##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.vo.req.$!{tableInfo.name}Req;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
import $!{tableInfo.savePackageName}.dto.BaseDTO;
import javax.annotation.Resource;

##表注释(宏定义)
#tableComment("表服务实现类")
@Service("$!tool.firstLowerCase($tableInfo.name)Service")
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {

    @Resource
    private  $!{tableInfo.name}Mapper $!{entityName}Mapper;
    
    
    @Override
    public IPage<$!{tableInfo.name}> list$!{tableInfo.name}(Long userId, $!{tableInfo.name}Req $!{entityName}Req) {
        IPage<$!{tableInfo.name}> $!{entityName}IPage = this.$!{entityName}Mapper.list$!{tableInfo.name}(new Page<>($!{entityName}Req.getPageNum(), $!{entityName}Req.getPageSize()), $!{entityName}Req);
        return $!{entityName}IPage;
    }
    


}

MyBatisPlusConfig.java.vm

$!{mydefine.vm}
##保存文件(宏定义)
#save("/config", "MybatisPlusConfig.java")

##包路径(宏定义)
#setPackageSuffix("config")

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableTransactionManagement
@Configuration
@MapperScan("$!{tableInfo.savePackageName}.mapper")

public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

mapper.java.vm

##导入宏定义
$!{define.vm}

##设置表后缀(宏定义)
#setTableSuffix("Mapper")

##保存文件(宏定义)
#save("/mapper", "Mapper.java")

##包路径(宏定义)
#setPackageSuffix("mapper")
##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.vo.req.$!{tableInfo.name}Req;
import org.apache.ibatis.annotations.Param;

##表注释(宏定义)
#tableComment("表数据库访问层")

public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {

    IPage<$!{tableInfo.name}> list$!{tableInfo.name}(@Param("page") Page<$!{tableInfo.name}> page, @Param("req")  $!{tableInfo.name}Req req);

}

req.java.vm

##导入宏定义
$!{define.vm}

##保存文件(宏定义)
#save("/vo/req", "Req.java")

##包路径(宏定义)
#setPackageSuffix("vo.req")

##自动导入包(全局变量)
$!autoImport

import $!{tableInfo.savePackageName}.dto.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;

import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@Data
@ApiModel("$tableInfo.comment")
public class $!{tableInfo.name}Req extends BaseDTO implements Serializable {
    private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    ##if(${column.comment})/**
    ##* ${column.comment}
    ##*/#end
    
    @ApiModelProperty("$column.comment")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}

resp.java.vm

##导入宏定义
$!{define.vm}

##保存文件(宏定义)
#save("/vo/resp", "Resp.java")

##包路径(宏定义)
#setPackageSuffix("vo.resp")

##自动导入包(全局变量)
$!autoImport

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;

import java.io.Serializable;

##表注释(宏定义)
#tableComment("表实体类")
@Data
@ApiModel("$tableInfo.comment")
public class $!{tableInfo.name}Resp  implements Serializable {
    private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    ##if(${column.comment})/**
    ##* ${column.comment}
    ##*/#end
    
    @ApiModelProperty("$column.comment")
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}

BaseDTO.java.vm

$!{mydefine.vm}
##保存文件(宏定义)
#save("/dto", "BaseDTO.java")

##包路径(宏定义)
#setPackageSuffix("dto")

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;

@Data
public class BaseDTO implements Serializable {

    /**
     * 当前页
     */
    @TableField(exist = false)
    private Integer pageNum;

    /**
     *  页显示数量
     */
    @TableField(exist = false)
    private Integer pageSize;

}

BaseResult.vm

$!{mydefine.vm}
##保存文件(宏定义)
#save("/utils", "BaseResult.java")

##包路径(宏定义)
#setPackageSuffix("utils")

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class BaseResult<T> implements Serializable {

    private static final Integer SUCCESS_CODE = 200;

    private static final String SUCCESS_MSG = "OK";

    private static final String ERROR_MSG = "系统异常!";

    private static final Integer ERROR_CODE = 400;

    private static final long serialVersionUID = 3722999012210320237L;

    @ApiModelProperty(value = "返回数据")
    private T data;

    @ApiModelProperty(value = "错误信息")
    private String msg = "";

    @ApiModelProperty(value = "状态 200成功 400失败 ")
    private Integer code = 200;

    @ApiModelProperty(value = "是否成功")
    private Boolean success;

    public static <T> BaseResult<T> success(T data) {
        BaseResult<T> result = new BaseResult<>();
        return result
                .setCode(SUCCESS_CODE)
                .setMsg(SUCCESS_MSG)
                .setSuccess(Boolean.TRUE)
                .setData(data);

    }

    public static BaseResult success() {
        BaseResult result = new BaseResult<>();
        return result
                .setCode(SUCCESS_CODE)
                .setMsg(SUCCESS_MSG)
                .setSuccess(Boolean.TRUE);

    }

    public static BaseResult error() {
        BaseResult result = new BaseResult<>();
        return result
                .setCode(ERROR_CODE)
                .setMsg(ERROR_MSG)
                .setSuccess(Boolean.FALSE);

    }

    public static <T> BaseResult<T> success(T data, String message) {
        BaseResult<T> result = new BaseResult<>();
        return result
                .setCode(SUCCESS_CODE)
                .setMsg(message)
                .setSuccess(Boolean.TRUE)
                .setData(data);

    }

    public static <T> BaseResult<T> error(String message) {
        BaseResult<T> result = new BaseResult<>();
        return result
                .setCode(ERROR_CODE)
                .setSuccess(Boolean.FALSE)
                .setMsg(message);
    }

    public static Integer getErrorCode() {
        return ERROR_CODE;
    }
}

公共和自定义公共

autoImport.vm

##自动导入包(仅导入实体属性需要的包,通常用于实体类)
#foreach($import in $importList)
import $!import;
#end

define.vm

##(Velocity宏定义)
##去掉表的t_前缀
#if($tableInfo.obj.name.startsWith("t_"))
$!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(2)))
#end

##定义设置表名后缀的宏定义,调用方式:#setTableSuffix("Test")
#macro(setTableSuffix $suffix)
    $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(2)))
    #set($tableName = $!tool.append($tableInfo.name, $suffix))
#end

##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix("Test")
#macro(setPackageSuffix $suffix)
#if($suffix!="")package #end#if($tableInfo.savePackageName!="")$!{tableInfo.savePackageName}.#{end}$!suffix;
#end

##定义直接保存路径与文件名简化的宏定义,调用方式:#save("/entity", ".java")
#macro(save $path $fileName)
    $!callback.setSavePath($tool.append($tableInfo.savePath, $path))
    $!callback.setFileName($tool.append($tableInfo.name, $fileName))
#end

##定义表注释的宏定义,调用方式:#tableComment("注释信息")
#macro(tableComment $desc)
/**
 * $!{tableInfo.comment}($!{tableInfo.name})$desc
 *
 * @author $!author
 */
#end

##定义GET,SET方法的宏定义,调用方式:#getSetMethod($column)
#macro(getSetMethod $column)

    public $!{tool.getClsNameByFullName($column.type)} get$!{tool.firstUpperCase($column.name)}() {
        return $!{column.name};
    }

    public void set$!{tool.firstUpperCase($column.name)}($!{tool.getClsNameByFullName($column.type)} $!{column.name}) {
        this.$!{column.name} = $!{column.name};
    }
#end

init.vm

##初始化区域

##去掉表的t_前缀
#if($tableInfo.obj.name.startsWith("t_"))
$!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(2)))
#end

$!tableInfo.setName($tool.getClassName($tableInfo.obj.name.replaceFirst("book_","")))

##参考阿里巴巴开发手册,POJO 类中布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误
#foreach($column in $tableInfo.fullColumn)
#if($column.name.startsWith("is") && $column.type.equals("java.lang.Boolean"))
    $!column.setName($tool.firstLowerCase($column.name.substring(2)))
#end
#end

##实现动态排除列
#set($temp = $tool.newHashSet("testCreateTime", "otherColumn"))
#foreach($item in $temp)
    #set($newList = $tool.newArrayList())
    #foreach($column in $tableInfo.fullColumn)
        #if($column.name!=$item)
            ##带有反回值的方法调用时使用$tool.call来消除返回值
            $tool.call($newList.add($column))
        #end
    #end
    ##重新保存
    $tableInfo.setFullColumn($newList)
#end

##对importList进行篡改
#set($temp = $tool.newHashSet())
#foreach($column in $tableInfo.fullColumn)
    #if(!$column.type.startsWith("java.lang."))
        ##带有反回值的方法调用时使用$tool.call来消除返回值
        $tool.call($temp.add($column.type))
    #end
#end
##覆盖
#set($importList = $temp)

mybatisSupport.vm

##针对Mybatis 进行支持,主要用于生成xml文件
#foreach($column in $tableInfo.fullColumn)
    ##储存列类型
    $tool.call($column.ext.put("sqlType", $tool.getField($column.obj.dataType, "typeName")))
    #if($tool.newHashSet("java.lang.String").contains($column.type))
        #set($jdbcType="VARCHAR")
    #elseif($tool.newHashSet("java.lang.Boolean", "boolean").contains($column.type))
        #set($jdbcType="BOOLEAN")
    #elseif($tool.newHashSet("java.lang.Byte", "byte").contains($column.type))
        #set($jdbcType="BYTE")
    #elseif($tool.newHashSet("java.lang.Integer", "int", "java.lang.Short", "short").contains($column.type))
        #set($jdbcType="INTEGER")
    #elseif($tool.newHashSet("java.lang.Long", "long").contains($column.type))
        #set($jdbcType="INTEGER")
    #elseif($tool.newHashSet("java.lang.Float", "float", "java.lang.Double", "double").contains($column.type))
        #set($jdbcType="NUMERIC")
    #elseif($tool.newHashSet("java.util.Date", "java.sql.Timestamp", "java.time.Instant", "java.time.LocalDateTime", "java.time.OffsetDateTime", "	java.time.ZonedDateTime").contains($column.type))
        #set($jdbcType="TIMESTAMP")
    #elseif($tool.newHashSet("java.sql.Date", "java.time.LocalDate").contains($column.type))
        #set($jdbcType="TIMESTAMP")
    #else
        ##其他类型
        #set($jdbcType="VARCHAR")
    #end
    $tool.call($column.ext.put("jdbcType", $jdbcType))
#end

##定义宏,查询所有列
#macro(allSqlColumn)#foreach($column in $tableInfo.fullColumn)$column.obj.name#if($velocityHasNext), #end#end#end

mydefine.vm

##(Velocity宏定义)

##定义设置表名后缀的宏定义,调用方式:#setTableSuffix("Test")
#macro(setTableSuffix $suffix)
    #set($tableName = $!tool.append($tableInfo.name, $suffix))
#end

##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix("Test")
#macro(setPackageSuffix $suffix)
#if($suffix!="")package #end#if($tableInfo.savePackageName!="")$!{tableInfo.savePackageName}.#{end}$!suffix;
#end

##定义直接保存路径与文件名简化的宏定义,调用方式:#save("/entity", ".java")
#macro(save $path $fileName)
   $!callback.setSavePath($tool.append($tableInfo.savePath, $path))
    $!callback.setFileName($tool.append($fileName))
#end

##定义表注释的宏定义,调用方式:#tableComment("注释信息")
#macro(tableComment $desc)
/**
 * $!{tableInfo.comment}($!{tableInfo.name})$desc
 *
 * @author $!author
 */
#end

##定义GET,SET方法的宏定义,调用方式:#getSetMethod($column)
#macro(getSetMethod $column)

    public $!{tool.getClsNameByFullName($column.type)} get$!{tool.firstUpperCase($column.name)}() {
        return $!{column.name};
    }

    public void set$!{tool.firstUpperCase($column.name)}($!{tool.getClsNameByFullName($column.type)} $!{column.name}) {
        this.$!{column.name} = $!{column.name};
    }
#end

defineforentity.vm

##(Velocity宏定义)

##定义设置表名后缀的宏定义,调用方式:#setTableSuffix("Test")
#macro(setTableSuffix $suffix)
    #set($tableName = $!tool.append($tableInfo.name, $suffix))
#end

##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix("Test")
#macro(setPackageSuffix $suffix)
#if($suffix!="")package #end#if($tableInfo.savePackageName!="")$!{tableInfo.savePackageName}.#{end}$!suffix;
#end

##定义直接保存路径与文件名简化的宏定义,调用方式:#save("/entity", ".java")
#macro(save $path $fileName)
    $!callback.setSavePath($tool.append($tableInfo.savePath, $path))
    $!callback.setFileName($tool.append($tableInfo.name, $fileName))
#end

##定义表注释的宏定义,调用方式:#tableComment("注释信息")
#macro(tableComment $desc)
/**
 * $!{tableInfo.comment}($!{tableInfo.name})$desc
 *
 * @author $!author
 */
#end

##定义GET,SET方法的宏定义,调用方式:#getSetMethod($column)
#macro(getSetMethod $column)

    public $!{tool.getClsNameByFullName($column.type)} get$!{tool.firstUpperCase($column.name)}() {
        return $!{column.name};
    }

    public void set$!{tool.firstUpperCase($column.name)}($!{tool.getClsNameByFullName($column.type)} $!{column.name}) {
        this.$!{column.name} = $!{column.name};
    }
#end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值