easyCode+mapstruct快速生成代码

entity

##引入宏定义
$!define
##使用宏定义设置回调(保存位置与文件后缀)
#save("/pojo/entity", ".java")
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pkname = $tableInfo.pkColumn.get(0).obj.name)
#end
##使用宏定义设置包后缀
#setPackageSuffix("pojo.entity")
##使用全局变量实现默认包导入
$!autoImport
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
##使用宏定义实现类注释信息
#tableComment("实体类")
@Data
public class $!{tableInfo.name} implements Serializable {
#foreach($column in $tableInfo.fullColumn)
    #if(${column.comment})
/** 
    * ${column.comment} 
    */
    #else
/** 
    * 
    */
#end
#if($column.obj.name==$pkname)
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
## #foreach($column in $tableInfo.fullColumn)
##使用宏定义实现get,set方法
##  #getSetMethod($column)
## #end

}

dao

##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Mapper"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))

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

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;

import $!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name};
import java.util.List;

/**
 * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
 *
 * @author $!author
 * @since $!time.currTime()
 */
public interface $!{tableName}{

 /**
   * 查询列表
   * @author $!author
   * @since $!time.currTime()
   * @param param 查询参数
   * @return 列表数据
   */
  List<$!{tableInfo.name}> queryAll($!{tableInfo.name} param);
 /**
   * 查询详情
   * @author $!author
   * @since $!time.currTime()
   * @param id 查询参数
   * @return  详情
   */
   $!{tableInfo.name} selectByPrimaryKey(String id);
    
 /**
   * 保存
   * @author $!author
   * @since $!time.currTime()
   * @param param 保存数据
   * @return  保存条目
   */
   int insert($!{tableInfo.name} param);
 /**
   * 保存
   * @author $!author
   * @since $!time.currTime()
   * @param param 保存数据
   * @return  保存条目
   */
   int insertSelective($!{tableInfo.name} param);
   /**
   * 批量保存
   * @author $!author
   * @since $!time.currTime()
   * @param entities 保存数据
   * @return  保存条目
   */
   int insertBatch(List<$!{tableInfo.name}> list);
   /**
   * 修改
   * @author $!author
   * @since $!time.currTime()
   * @param param 修改数据
   * @return  修改数量
   */
   int updateByPrimaryKeySelective($!{tableInfo.name} param);
   /**
   * 修改
   * @author $!author
   * @since $!time.currTime()
   * @param param 修改数据
   * @return  修改数量
   */
   int updateByPrimaryKey($!{tableInfo.name} param);
     /**
   * 批量修改
   * @author $!author
   * @since $!time.currTime()
   * @param entities 保存数据
   * @return  保存条目
   */
   int updateByBatch(List<$!{tableInfo.name}> list);
 /**
   * 删除
   * @author $!author
   * @since $!time.currTime()
   * @param    id 主键ID
   * @return int 删除数量
   */
   int deleteByPrimaryKey(String id);
  /**
   * 批量修改
   * @author $!author
   * @since $!time.currTime()
   * @param entities 保存数据
   * @return  保存条目
   */
   int deleteByBatch(List<$!{tableInfo.name}> list);
}

service

##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Service"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))

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

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;
import com.wbs.common.utils.Response.Result;
import $!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.pojo.dto.$!{tableInfo.name}DTO;
import java.util.List;

/**
 * $!{tableInfo.comment}($!{tableInfo.name})表服务接口
 *
 * @author $!author
 * @since $!time.currTime()
 */
public interface $!{tableName} {

    /**
     * 通过ID查询单条数据
     *
     * @param $!pk.name 主键
     * @return 实例对象
     */
    $!{tableInfo.name}VO queryById($!pk.shortType $!pk.name);
    /**
     * 批量查询
     *
     * @param param 实例对象
     * @return 实例对象
     */
    Result queryAll($!{tableInfo.name}DTO param);
    /**
     * 新增数据
     *
     * @param param 实例对象
     * @return 实例对象
     */
    Result insert($!{tableInfo.name}DTO param);

    /**
     * 修改数据
     *
     * @param param 实例对象
     * @return 实例对象
     */
    Result update($!{tableInfo.name}DTO param);

    /**
     * 通过主键删除数据
     *
     * @param $!pk.name 主键
     * @return 是否成功
     */
    Result delete($!pk.shortType $!pk.name);

}

serviceImpl

##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))

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

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;

import $!{tableInfo.savePackageName}.pojo.dto.$!{tableInfo.name}DTO;
import $!{tableInfo.savePackageName}.pojo.vo.$!{tableInfo.name}VO;
import $!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.convert.$!{tableInfo.name}Converter;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import com.wbs.common.base.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import com.wbs.common.utils.UUIDUtil;
import lombok.extern.slf4j.Slf4j;
import com.wbs.common.utils.Response.Result;
import com.wbs.common.utils.page.PageResult;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
 *
 * @author $!author
 * @since $!time.currTime()
 */
@Slf4j
@Service("$!tool.firstLowerCase($!{tableInfo.name})Service")
public class $!{tableName} extends BaseServiceImpl implements $!{tableInfo.name}Service {
   
    @Resource
    private $!{tableInfo.name}Mapper $!tool.firstLowerCase($!{tableInfo.name})Mapper;

    @Resource
    private $!{tableInfo.name}Converter $!tool.firstLowerCase($!{tableInfo.name})Converter;

    /**
     * 通过ID查询单条数据
     *
     * @param $!pk.name 主键
     * @return 实例对象
     */
    @Override
    public $!{tableInfo.name}VO queryById($!pk.shortType $!pk.name) {
        return $!{tool.firstLowerCase($!{tableInfo.name})}Converter.copyVoFromEntity($!{tool.firstLowerCase($!{tableInfo.name})}Mapper.selectByPrimaryKey($!pk.name),new $!{tableInfo.name}VO());
    }

    /**
     * 查询多条数据
     *
     * @param param
     * @return 对象列表
     */
    @Override
    public Result queryAll($!{tableInfo.name}DTO param) {
         //处理分页
        PageHelper.startPage(param.getPageNum(), param.getPageSize());
        $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})}=new $!{tableInfo.name}();       
        $!{tool.firstLowerCase($!{tableInfo.name})}Converter.copyEntityFromDto(param,$!{tool.firstLowerCase($!{tableInfo.name})});
        List<$!{tableInfo.name}> list = $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.queryAll(param);
        PageResult pageResult = PageResult.pageResult($!{tool.firstLowerCase($!{tableInfo.name})}Converter.copyList(list));
        return Result.success(pageResult);
    }

    /**
     * 新增数据
     *
     * @param param 实例对象
     * @return 实例对象
     */
    @Override
    public Result insert($!{tableInfo.name}DTO param) {
        param.setId(UUIDUtil.getUuidNumber());
        param.setCreateDate(getCreateDate());
        param.setCreateUser("admin");
        $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})}=new $!{tableInfo.name}();       
        $!{tool.firstLowerCase($!{tableInfo.name})}Converter.copyEntityFromDto(param,$!{tool.firstLowerCase($!{tableInfo.name})});
        $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.insertSelective(param);
        return Result.ok();
    }

    /**
     * 修改数据
     *
     * @param param 实例对象
     * @return 实例对象
     */
    @Override
    public Result update($!{tableInfo.name}DTO param) {
        param.setLastUpdateDate(getCreateDate());
        param.setLastUpdateUser("admin");
        $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})}=new $!{tableInfo.name}();       
        $!{tool.firstLowerCase($!{tableInfo.name})}Converter.copyEntityFromDto(param,$!{tool.firstLowerCase($!{tableInfo.name})});
        $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.updateByPrimaryKeySelective(param);
        return Result.ok();
    }

    /**
     * 通过主键删除数据
     *
     * @param $!pk.name 主键
     * @return 是否成功
     */
    @Override
    public Result delete($!pk.shortType $!pk.name) {
        $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.deleteByPrimaryKey($!pk.name);
        return Result.ok();
    }
}

controller

##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Controller"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;

import $!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * $!{tableInfo.comment}($!{tableInfo.name})表控制层
 *
 * @author $!author
 * @since $!time.currTime()
 */
@RestController
@RequestMapping("$!tool.firstLowerCase($tableInfo.name)")
public class $!{tableName} {
    /**
     * 服务对象
     */
    @Resource
    private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("queryById")
    public $!{tableInfo.name} queryById($!pk.shortType id) {
        return $!{tool.firstLowerCase($tableInfo.name)}Service.queryById(id);
    }

}

mapper.xml

##引入mybatis支持
$!mybatisSupport
##设置保存名称与保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Mapper.xml"))
$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapper"))
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
    #set($pkType = $tableInfo.pkColumn.get(0).ext.jdbcType)
#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}.dao.$!{tableInfo.name}Mapper">
    <resultMap type="$!{tableInfo.savePackageName}.pojo.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>
     <sql id="Base_Column_List"> 
    #allSqlColumn() 
  </sql>
    <!--查询单个-->
    <select id="selectByPrimaryKey" resultMap="$!{tableInfo.name}Map">
        select
          <include refid="Base_Column_List"/>
        from $!tableInfo.obj.name
        where $!pk.obj.name = #{$!pk.name ,jdbcType=$!pkType}
    </select>
    <!--通过实体作为筛选条件查询-->
    <select id="queryAll" resultMap="$!{tableInfo.name}Map">
        select
         <include refid="Base_Column_List"/>
        from $!tableInfo.obj.name
        <where>
#foreach($column in $tableInfo.fullColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                and $!column.obj.name = #{$!column.name,jdbcType=$!column.ext.jdbcType}
            </if>
#end
        </where>
    </select>

    <!--新增所有列-->
    <insert id="insert"parameterType="$!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name}">
        insert into $!{tableInfo.obj.name}(
        #foreach($column in $tableInfo.fullColumn)
        $!column.obj.name#if($velocityHasNext),
        #end#end
        )
        values (
        #foreach($column in $tableInfo.fullColumn)
        #{$!{column.name},jdbcType="$!column.ext.jdbcType"}#if($velocityHasNext),
        #end#end
        )
    </insert>

 <!--新增所有列-->
    <insert id="insertSelective" parameterType="$!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name}">
        insert into $!{tableInfo.obj.name}
        <trim prefix="(" suffix=")" suffixOverrides=",">
#foreach($column in $tableInfo.fullColumn)
             <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                  $!column.obj.name,
             </if>
#end
        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
#foreach($column in $tableInfo.fullColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                #{$!column.name,jdbcType=$!column.ext.jdbcType},
            </if>
#end
        </trim>
    </insert>
    <insert id="insertBatch" parameterType="java.util.List">
        insert into $!{tableInfo.obj.name}(
#foreach($column in $tableInfo.fullColumn)
         $!column.obj.name#if($velocityHasNext),
#end#end)
        values
        <foreach collection="entities" item="entity" separator=",">
        (
#foreach($column in $tableInfo.fullColumn)
        #{entity.$!{column.name},jdbcType=$!column.ext.jdbcType}#if($velocityHasNext),
#end#end)
        </foreach>
    </insert>
   <!--通过主键修改数据-->
    <update id="updateByPrimaryKeySelective" parameterType="$!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name}">
        update $!{tableInfo.obj.name}
        <set>
#foreach($column in $tableInfo.otherColumn)
            <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
                $!column.obj.name = #{$!column.name,jdbcType=$!column.ext.jdbcType},
            </if>
#end
        </set>
        where $!pk.obj.name = #{$!pk.name,jdbcType="$pkType"}
    </update>
    <!--通过主键修改数据-->
    <update id="updateByPrimaryKey" parameterType="$!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name}">
        update $!{tableInfo.obj.name} set
#foreach($column in $tableInfo.otherColumn)
                $!column.obj.name = #{$!column.name,jdbcType=$!column.ext.jdbcType},
#end
        where $!pk.obj.name = #{$!pk.name,jdbcType=$pkType}
    </update>
     <!--批量修改数据-->
    <update id="updateByBatch" parameterType="java.util.List">
        begin 
       <foreach collection="list" item="item" index="index" open="" close=";" separator=";">
         update $!{tableInfo.obj.name}
        <set>
#foreach($column in $tableInfo.otherColumn)
            <if test="item.$!column.name != null#if($column.type.equals("java.lang.String")) and item.$!column.name != ''#end">
                $!column.obj.name = #{item.$!column.name,jdbcType=$!column.ext.jdbcType},
            </if>
#end
        </set>
        where $!pk.obj.name = #{item.$!pk.name,jdbcType="$pkType"}
     </foreach>
        end;
    </update>
    <!--通过主键删除-->
    <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
        delete from $!{tableInfo.obj.name}
        where $!pk.obj.name = #{$!pk.name,jdbcType=$pkType}
    </delete>
    
    <!--通过主键批量删除-->
    <delete id="deleteByBatch" parameterType="java.util.List">
      begin 
       <foreach collection="list" item="item" index="index" open="" close=";" separator=";">
            delete from $!{tableInfo.obj.name}
            where $!pk.obj.name = #{item.$!pk.name,jdbcType=$pkType}
        </foreach>
        end;
    </delete>
</mapper>

dto

##引入宏定义
$!define
##使用宏定义设置回调(保存位置与文件后缀)
#save("/pojo/dto", "DTO.java")
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pkname = $tableInfo.pkColumn.get(0).obj.name)
#end
##使用宏定义设置包后缀
#setPackageSuffix("pojo.dto")
##使用全局变量实现默认包导入
$!autoImport
import com.wbs.common.base.dto.BaseDTO;
import lombok.Data;
import java.util.Date;
##使用宏定义实现类注释信息
#tableComment("实体类")
@Data
public class $!{tableInfo.name}DTO extends BaseDTO {
#foreach($column in $tableInfo.fullColumn)
    #if(${column.comment})
/** 
    * ${column.comment} 
    */
    #else
/** 
    * 
    */
#end
#if($column.obj.name==$pkname)
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
## #foreach($column in $tableInfo.fullColumn)
##使用宏定义实现get,set方法
##  #getSetMethod($column)
## #end


}

vo

##引入宏定义
$!define
##使用宏定义设置回调(保存位置与文件后缀)
#save("/pojo/vo", "VO.java")
##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pkname = $tableInfo.pkColumn.get(0).obj.name)
#end
##使用宏定义设置包后缀
#setPackageSuffix("pojo.vo")
##使用全局变量实现默认包导入
$!autoImport
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
##使用宏定义实现类注释信息
#tableComment("实体类")
@Data
public class $!{tableInfo.name}VO implements Serializable {
#foreach($column in $tableInfo.fullColumn)
    #if(${column.comment})
/** 
    * ${column.comment} 
    */
    #else
/** 
    * 
    */
#end
#if($column.obj.name==$pkname)
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
## #foreach($column in $tableInfo.fullColumn)
##使用宏定义实现get,set方法
##  #getSetMethod($column)
## #end
}

converter

##引入宏定义
$!define
##使用宏定义设置包后缀
#setPackageSuffix("convert")
##使用全局变量实现默认包导入
$!autoImport
import lombok.Data;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import $!{tableInfo.savePackageName}.pojo.dto.$!{tableInfo.name}DTO;
import $!{tableInfo.savePackageName}.pojo.vo.$!{tableInfo.name}VO;
import $!{tableInfo.savePackageName}.pojo.entity.$!{tableInfo.name};
import java.util.List;
##使用宏定义实现类注释信息
#tableComment("convert")
@Mapper(componentModel = "spring",uses = {$!{tableInfo.name}Converter.class})
public class $!{tableInfo.name}Converter{
   /**
     * 拷贝对象
     * @param $!{tool.firstLowerCase($tableInfo.name)}DTO          要拷贝的对象
     * @param $!{tool.firstLowerCase($tableInfo.name)}        返回转化的对象
     */
    void copyEntityFromDto($!{tableInfo.name}DTO $!{tool.firstLowerCase($tableInfo.name)}DTO, @MappingTarget $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)} );
    /**
     * 拷贝对象
     * @param $!{tool.firstLowerCase($tableInfo.name)}          要拷贝的对象
     * @param $!{tool.firstLowerCase($tableInfo.name)}VO    返回转化的对象
     */
    void copyVoFromEntity($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)} , @MappingTarget $!{tableInfo.name}VO $!{tool.firstLowerCase($tableInfo.name)}VO);
    /**
     * 拷贝对象集合
     * @param list          要拷贝的对象集合
     * @return              返回转化的对象集合
     */
    List<$!{tableInfo.name}VO> copyList(List<$!{tableInfo.name}> list);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值