10.10-EasyCode 配置

1、Global Configjava

    -一、init文件web

##去掉表的tbl_前綴
#if($tableInfo.obj.name.startsWith("tbl_"))
    $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))
#end

##實現動態排除列
#set($temp = $tool.newHashSet("createTime","creator","updateTime","updator","delFlag"))
#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)

    -二、define文件spring

##定義設置表名後綴的宏定義,調用方式:#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)
/**
 * @Author Lee_Finn
 * @Date $!time.currTime()
 * @Desc null
 */
#end

##定義GETSET方法的宏定義,調用方式:#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

    -三、autoImport文件sql

##自動導入包(僅導入實體屬性須要的包,一般用於實體類)
#foreach($import in $importList)
import $!import;
#end

    -四、mybatisSupport文件數據庫

##針對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="LONG 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="OTHER")
    #end
    $tool.call($column.ext.put("jdbcType", $jdbcType))
#end

##定義宏,查詢全部列
#macro(allSqlColumn)#foreach($column in $tableInfo.fullColumn)$column.obj.name#if($velocityHasNext), #end#end#end

2、Template Settingapache

    -一、entity.javamybatis

##引入宏定義
$!define
$!init

##使用宏定義設置回調(保存位置與文件後綴)
#save("/entity", ".java")

##使用宏定義設置包後綴
#setPackageSuffix("entity")

##使用全局變量實現默認包導入
$!autoImport
import java.io.Serializable;
import com.qf.total.relatedVo.BaseModel;

##使用宏定義實現類註釋信息
#tableComment("實體類")
public class $!{tableInfo.name} extends BaseModel implements Serializable {
    private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
    #if(${column.comment})
    
    /**
     * ${column.comment}
     */#end

    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end

#foreach($column in $tableInfo.fullColumn)
##使用宏定義實現get,set方法
    #getSetMethod($column)
#end
}

    -二、dao.java文件app

##引入宏定義
$!init

##定義初始變量
#set($tableName = $tool.append($tableInfo.name, "Mapper"))
##設置回調
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper"))

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

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

import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * @author $!author
 * @Date $!time.currTime()
 * @Desc null
 */
public interface $!{tableName} {

    /**
     * 經過$tool.append($!pk.name)查詢
     *
     * @param $!pk.name
     * @return
     */
    public $!{tableInfo.name} get$!{tableInfo.name}ById($!pk.shortType $!pk.name);

    /**
     * 經過對象查詢
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})
     * @return
     */
    public List<$!{tableInfo.name}> getAll$!{tableInfo.name}s($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
    
    /**
     * 經過id更改對象
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})
     * @return
     */
    public int update$!{tableInfo.name}ById($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));

    /**
     * 批量更改對象
     * 
     * @param $!tool.firstLowerCase($!{tableInfo.name})s
     * @return
     */
    public int update$!{tableInfo.name}List(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s);
     
    /**
     * 經過$tool.append($!pk.name)刪除
     * 
     * @param $!pk.name
     * @return
     */
    public int delete$!{tableInfo.name}ById($!pk.shortType $!pk.name);
           
    /**
     * 經過$tool.append($!pk.name,"s")批量刪除
     *
     * @param $tool.append($!pk.name,"s")
     * @return
     */
    public int delete$!{tableInfo.name}ByIds($!pk.shortType $tool.append($!pk.name,"s"));
    
    /**
     * 新增數據
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})
     * @return
     */
    public int insert$!{tableInfo.name}($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));

    /**
     * 批量新增數據
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})s
     * @return
     */
    public int insert$!{tableInfo.name}List(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s);

}

    -三、service.javaide

##引入宏定義
$!init

##定義初始變量
#set($tableName = $tool.append("I",$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 $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import java.util.List;

/**
 * @author $!author
 * @Date $!time.currTime()
 * @Desc null
 */
public interface $!{tableName} {

    /**
     * 經過$tool.append($!pk.name)查詢
     *
     * @param $!pk.name
     * @return
     */
    public $!{tableInfo.name} get$!{tableInfo.name}ById($!pk.shortType $!pk.name) throws Exception;

    /**
     * 經過對象查詢
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})
     * @return
     */
    public List<$!{tableInfo.name}> getAll$!{tableInfo.name}s($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) throws Exception;
    
    /**
     * 經過id更改對象
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})
     * @return
     */
    public int update$!{tableInfo.name}ById($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) throws Exception;

    /**
     * 批量更改對象
     * 
     * @param $!tool.firstLowerCase($!{tableInfo.name})s
     * @return
     */
    public int update$!{tableInfo.name}List(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s) throws Exception;
     
    /**
     * 經過$tool.append($!pk.name)刪除
     * 
     * @param $!pk.name
     * @return
     */
    public int delete$!{tableInfo.name}ById($!pk.shortType $!pk.name) throws Exception;
           
    /**
     * 經過$tool.append($!pk.name,"s")批量刪除
     *
     * @param $tool.append($!pk.name,"s")
     * @return
     */
    public int delete$!{tableInfo.name}ByIds($!pk.shortType $tool.append($!pk.name,"s")) throws Exception;
    
    /**
     * 新增數據
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})
     * @return
     */
    public int insert$!{tableInfo.name}($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) throws Exception;

    /**
     * 批量新增數據
     *
     * @param $!tool.firstLowerCase($!{tableInfo.name})s
     * @return
     */
    public int insert$!{tableInfo.name}List(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s) throws Exception;
}

    -4、serviceImpl文件this

##引入宏定義
$!init

##定義初始變量
#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}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import com.qf.commons.utils.UUIDGenerateUtil;

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

/**
 * @author $!author
 * @Date $!time.currTime()
 * @Desc null
 */
@Service
public class $!{tableName} implements I$!{tableInfo.name}Service {
    @Resource
    private $!{tableInfo.name}Mapper $!tool.firstLowerCase($!{tableInfo.name})Mapper;

    @Override
    public $!{tableInfo.name} get$!{tableInfo.name}ById($!pk.shortType $!pk.name) throws Exception{
        if(StringUtils.isNotBlank($!pk.name)){
            return this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.get$!{tableInfo.name}ById($!pk.name);
        }else {
            return null;
        }
    }

    @Override
    public List<$!{tableInfo.name}> getAll$!{tableInfo.name}s($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) throws Exception{
        if(null != $!tool.firstLowerCase($!{tableInfo.name})){
            return this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.getAll$!{tableInfo.name}s($!tool.firstLowerCase($!{tableInfo.name}));
        }else{
            return null;
        }
    }
    
    @Override
    public int update$!{tableInfo.name}ById($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) throws Exception{
        if(null != $!tool.firstLowerCase($!{tableInfo.name})){
            return $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.update$!{tableInfo.name}ById($!tool.firstLowerCase($!{tableInfo.name}));
        }else {
            return 0;
        }
    }
    
    @Override
    public int update$!{tableInfo.name}List(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s) throws Exception{
        if(CollectionUtils.isNotEmpty($!tool.firstLowerCase($!{tableInfo.name})s)){
            for($!{tableInfo.name} temp : $!tool.firstLowerCase($!{tableInfo.name})s){
                temp.setUpdateTime(new Date());
            }
            return $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.update$!{tableInfo.name}List($!tool.firstLowerCase($!{tableInfo.name})s);
        }else {
            return 0;
        }
    }
    
    @Override
    public int delete$!{tableInfo.name}ById($!pk.shortType $!pk.name) throws Exception{
        if(StringUtils.isNotBlank($!pk.name)){
            return $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.delete$!{tableInfo.name}ById($!pk.name);
        }else{
            return 0;
        }
    }

    @Override
    public int delete$!{tableInfo.name}ByIds($!pk.shortType $tool.append($!pk.name,"s")) throws Exception{
        if(StringUtils.isNotBlank($tool.append($!pk.name,"s"))){
            return $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.delete$!{tableInfo.name}ByIds($tool.append($!pk.name,
    "s"));
        }else{
            return 0;
        }
    }
    
    @Override
    public int insert$!{tableInfo.name}($!{tableInfo.name} temp) throws Exception{
        if(null != temp){
            temp.setCreateTime(new Date());
            temp.setUpdateTime(new Date());
            if (StringUtils.isBlank(temp.getId())){
                temp.setId(UUIDGenerateUtil.generate());
            }
            return $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.insert$!{tableInfo.name}(temp);
        }else{
            return 0;
        }
    }
    
    @Override
    public int insert$!{tableInfo.name}List(List<$!{tableInfo.name}> $!tool.firstLowerCase($!{tableInfo.name})s) throws Exception{
        if(CollectionUtils.isNotEmpty($!tool.firstLowerCase($!{tableInfo.name})s)){
            for($!{tableInfo.name} temp : $!tool.firstLowerCase($!{tableInfo.name})s){
                temp.setCreateTime(new Date());
                temp.setUpdateTime(new Date());
                if (StringUtils.isBlank(temp.getId())){
                    temp.setId(UUIDGenerateUtil.generate());
                }
            }
            return $!{tool.firstLowerCase($!{tableInfo.name})}Mapper.insert$!{tableInfo.name}List($!tool.firstLowerCase($!{tableInfo.name})s);
        }else {
            return 0;
        }
    }

}

    -五、controller.java文件

##引入宏定義
$!init

##定義初始變量
#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}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;

/**
 * @author $!author
 * @Date $!time.currTime()
 * @Desc null
 */
@Controller
@RequestMapping("$!tool.firstLowerCase($tableInfo.name)")
public class $!{tableName} {
    /**
     * 服務對象
     */
    @Resource
    private I$!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;
}

    -六、mapper.xml

##引入宏定義
$!init

##引入mybatis支持
$!mybatisSupport

##設置保存名稱與保存位置
$!callback.setFileName($tool.append($!{tableInfo.name}, "Mapper.xml"))
$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mapperFiles"))

##拿到主鍵
#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>
    
    <!--要查詢顯示的字段-->
    <sql id="Base_Column_List">
        #allSqlColumn()
        
    </sql>
    
    <!--要條件查詢的字段-->
    <sql id="Column_Query">
#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}
        </if>
#end
    </sql>
    
    <!--要更新的字段一-->
    <sql id="Column_Update_One">
#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},
        </if>
#end
    </sql>
    
    <!--要更新的字段二-->
    <sql id="Column_Update_Two">
#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},
        </if>
#end
    </sql>
    
    <!--要新增的字段-->
    <sql id="Column_Set">
#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
    </sql>
    <!--要賦值的字段-->
    <sql id="Column_Value_One">
#foreach($column in $tableInfo.fullColumn)
        <if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
            #{$!column.name},
        </if>
#end
    </sql>
    
    <!--要賦值的字段二-->
    <sql id="Column_Value_Two">
#foreach($column in $tableInfo.fullColumn)
        <if test="item.$!column.name != null#if($column.type.equals("java.lang.String")) and item.$!column.name != ''#end">
            #{item.$!column.name},
        </if>
#end
    </sql>
    
    <!--經過$tool.append($!pk.name)查詢-->
    <select id="get$!{tableInfo.name}ById" resultMap="$!{tableInfo.name}Map">
        select 
            <include refid="Base_Column_List"/>
        from $!tableInfo.obj.name
        where 
            $!pk.obj.name = #{$!pk.name}
    </select>

    <!--經過對象查詢-->
    <select id="getAll$!{tableInfo.name}s" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" resultMap="$!{tableInfo.name}Map">
        select
            <include refid="Base_Column_List"/>
        from $!tableInfo.obj.name
        where 1=1
        <include refid="Column_Query"/>
    </select>
    
    <!--經過id更改對象-->
    <update id="update$!{tableInfo.name}ById" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
        update $!tableInfo.obj.name
        <set>
            <include refid="Column_Update_One"/>
        </set>
        where $!pk.obj.name = #{$!pk.name}
    </update>
    
    <!--批量更改對象-->
    <update id="update$!{tableInfo.name}List" parameterType="java.util.List">
        <foreach collection="list" item="item" separator=";">
            update $!tableInfo.obj.name
            <set>
                <include refid="Column_Update_Two"/>
            </set>
        </foreach>
    </update>
    
    <!--經過$tool.append($!pk.name)刪除-->
    <delete id="delete$!{tableInfo.name}ById">
        delete from $!{tableInfo.obj.name} 
        where 
            $!pk.obj.name = #{$!pk.name}
    </delete>
    
    <!--經過$tool.append($!pk.name,"s")批量刪除-->
    <delete id="delete$!{tableInfo.name}ByIds">
        delete from $!{tableInfo.obj.name} 
        where 
            $!pk.obj.name in ($tool.append($!pk.name,"s"))
    </delete>
    
    <!--新增數據-->
    <insert id="insert$!{tableInfo.name}" parameterType="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}">
        insert into $!{tableInfo.obj.name}
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <include refid="Column_Set"/>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <include refid="Column_Value_One"/>
        </trim>
    </insert>
    
    
    <!--批量新增數據-->
    <insert id="insert$!{tableInfo.name}List" parameterType="java.util.List">
        insert into $!{tableInfo.obj.name}
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <include refid="Column_Set"/>
        </trim>
        values
        <foreach collection="list" item="item" index="index" separator=",">
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <include refid="Column_Value_Two"/>
            </trim>
        </foreach>
    </insert>
</mapper>

 

EasyCode 實時調試不瞭解決方法:重啓Idea,點擊關聯的數據庫刷新一下就能夠了

相關文章
相關標籤/搜索