笔记Easy Code 使用

Easy code

一、简介

代码生成工具

二、使用

1.下载插件

idea》 File 》setting》plugins》Esay Code

在这里插入图片描述

2.连接数据库

在这里插入图片描述

在这里插入图片描述

3.生成代码

选择数据库表生成代码

在这里插入图片描述

添加对应映射关系
在这里插入图片描述
在这里插入图片描述

选择路径,和要导出的文件类型

在这里插入图片描述

三、配置自定义模板

1.entity

#*说明文档:属性$packageName 选择的包名$author 设置中的作者$encode 设置的编码$modulePath 选中的module路径$projectPath 项目绝对路径对象$tableInfo 表对象    obj 表原始对象    name 表名(转换后的首字母大写)    comment 表注释    fullColumn 所有列    pkColumn 主键列    otherColumn 其他列    savePackageName 保存的包名    savePath 保存路径    saveModelName 保存的model名称columnInfo 列对象    obj 列原始对象    name 列名(首字母小写)    comment 列注释    type 列类型(类型全名)    ext 附加字段(Map类型)$tableInfoList 所有选中的表$importList 所有需要导入的包集合回调&callback    setFileName(String) 设置文件储存名字    setSavePath(String) 设置文件储存路径,默认使用选中路径工具$tool    firstUpperCase(String) 首字母大写方法    firstLowerCase(String) 首字母小写方法    getClsNameByFullName(String) 通过包全名获取类名    getJavaName(String) 将下划线分割字符串转驼峰命名(属性名)    getClassName(String) 将下划线分割字符串转驼峰命名(类名)    append(... Object) 多个数据进行拼接$time    currTime(String) 获取当前时间,指定时间格式(默认:yyyy-MM-dd HH:mm:ss)*###设置回调$!callback.setFileName($tool.append($tableInfo.name, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/entity"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}entity;#foreach($import in $importList)import $!import;#end/** * $!{tableInfo.comment}($!{tableInfo.name})表实体类 * * @author $!author * @since $!time.currTime() */public class $!{tableInfo.name} {#foreach($column in $tableInfo.fullColumn)    #if(${column.comment})//${column.comment}#end    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end#foreach($column in $tableInfo.fullColumn)    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}

2.dao

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Dao"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;/** * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层 * * @author $!author * @since $!time.currTime() */public class $!{tableName} {}

3.service

##定义初始变量#set($tableName = $tool.append("I",$tableInfo.name, "Service"))#set($domainName=$tool.firstLowerCase($tableInfo.name))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name}Query;import cn.com.oceansoft.osc.ms.view.ApiResult;/** * $!{tableInfo.comment}($!{tableInfo.name})表服务接口 * * @author $!author * @since $!time.currTime() */public interface $!{tableName} {    /**     *通过id获取$!{tableInfo.comment}($!{tableInfo.name})数据     * @param guid 主键     * @return 结果     */    ApiResult get$!{tableInfo.name}(String guid);    /**     *通过id删除$!{tableInfo.comment}($!{tableInfo.name})数据     * @param guid 主键     * @return 结果     */    ApiResult del$!{tableInfo.name}(String guid);    /**     *新增或者修改$!{tableInfo.comment}($!{tableInfo.name})数据     * @param $!{domainName} 数据     * @return 结果     */    ApiResult addOrUpdate$!{tableInfo.name}($!{tableInfo.name} $!{domainName});    /**     *分页查询$!{tableInfo.comment}($!{tableInfo.name})数据     * @param $!{domainName}Query 查询条件     * @return 结果     */    ApiResult find$!{tableInfo.name}($!{tableInfo.name}Query $!{domainName}Query);}

4.serviceImpl

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))#set($domainName=$tool.firstLowerCase($tableInfo.name))#set($mapperName=$tool.append($tool.firstLowerCase($tableInfo.name),"Mapper"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;import $!{tableInfo.savePackageName}.persistence.I$!{tableInfo.name}Mapper;import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name}Query;import $!{tableInfo.savePackageName}.domain.ApiPager;import cn.com.oceansoft.osc.ms.common.utils.UUIDUtils;import cn.com.oceansoft.osc.ms.view.ApiResult;import org.apache.commons.lang.StringUtils;import com.github.pagehelper.Page;import com.github.pagehelper.PageHelper;import javax.annotation.Resource;/** * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类 * * @author $!author * @since $!time.currTime() */@Servicepublic class $!{tableName} implements I$!{tableInfo.name}Service {    @Resource    private I$!{tableInfo.name}Mapper $!{mapperName};    @Override    public ApiResult find$!{tableInfo.name}($!{tableInfo.name}Query $!{domainName}Query){        PageHelper.startPage($!{domainName}Query.getPi(), $!{domainName}Query.getPs(), true);        Page<$!{tableInfo.name}> list = (Page<$!{tableInfo.name}>) $!{mapperName}.find($!{domainName}Query);         ApiPager apiPager = new ApiPager<>(list.getPageSize(), list.getPageNum(), list.getTotal(), list.getResult());        ApiResult apiResult = new ApiResult();        apiResult.setData(apiPager);        return apiResult.success("查询成功");    }    @Override    public ApiResult get$!{tableInfo.name}(String guid){        $!{tableInfo.name} $!{domainName} = $!{mapperName}.get(guid);        if(null!=$!{domainName}){             ApiResult apiResult = new ApiResult();            apiResult.setData($!{domainName});            return apiResult.success("查询成功");        }else{            return new ApiResult().failure("该数据不存在");        }    }     @Override     @Transactional(rollbackFor = Exception.class)     public ApiResult del$!{tableInfo.name}(String guid){        int delCount = $!{mapperName}.del(guid);        if(delCount>0){            return new ApiResult().success("删除成功");         }else{            return new ApiResult().failure("删除失败");        }     }     @Override     @Transactional(rollbackFor = Exception.class)     public ApiResult addOrUpdate$!{tableInfo.name}($!{tableInfo.name} $!{domainName}){        String guid = $!{domainName}.getGuid();        if(StringUtils.isBlank(guid)){           return  add($!{domainName});        }else{            int count =$!{mapperName}.getCountByGuid(guid);            if(count>0){                return set($!{domainName});            }else{                return  add($!{domainName});            }        }     }        public ApiResult set($!{tableInfo.name} $!{domainName}){         int updateCount =  $!{mapperName}.set($!{domainName});         if(updateCount>0){            return new ApiResult().success("修改成功");         }else{            return new ApiResult().failure("修改失败");         }     }     public ApiResult add($!{tableInfo.name} $!{domainName}){         String guid = UUIDUtils.getUuid();         $!{domainName}.setGuid(guid);         int updateCount =  $!{mapperName}.add($!{domainName});         if(updateCount>0){            return new ApiResult().success("添加成功");         }else{            return new ApiResult().failure("添加失败");         }     }}

5.controller

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Controller"))#set($mappingName = $!{tableInfo.obj.name.replaceAll("_","-").toLowerCase()})#if($tableInfo.obj.name.startsWith("_"))    #set($mappingName = $!{tableInfo.obj.name.substring(1).replaceAll("_","-").toLowerCase()})#end#set($domainName=$tool.firstLowerCase($tableInfo.name))#set($serviceName=$tool.append($tool.firstLowerCase($tableInfo.name),"Service"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;import org.springframework.web.bind.annotation.RestController;import io.swagger.annotations.Api;import cn.com.oceansoft.osc.ms.view.ApiResult;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiOperation;import org.springframework.web.bind.annotation.*;import org.springframework.web.bind.annotation.RequestMapping;import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name}Query;import javax.annotation.Resource;/** * $!{tableInfo.comment}($!{tableInfo.name})表控制层 * * @author $!author * @since $!time.currTime() */ @RestController @Api(description = "$!{tableInfo.comment}相关接口") @RequestMapping(value="/$!{mappingName}")public class $!{tableName} {    @Resource    private I$!{tableInfo.name}Service $!{serviceName};        @GetMapping("get/{guid}")    @ApiOperation("获取一条$!{tableInfo.comment}数据")    @ApiImplicitParam(value = "主键", paramType = "path", name = "guid", dataType = "String", required = true)    public ApiResult get$!{tableInfo.name}(@PathVariable String guid){         return $!{serviceName}.get$!{tableInfo.name}(guid);    }        @DeleteMapping("del/{guid}")    @ApiOperation("删除一条$!{tableInfo.comment}数据")    @ApiImplicitParam(value = "主键", paramType = "path", name = "guid", dataType = "String", required = true)    public ApiResult del$!{tableInfo.name}(@PathVariable String guid){         return $!{serviceName}.del$!{tableInfo.name}(guid);    }        @PostMapping("addorupdate")    @ApiOperation("添加或修改一条$!{tableInfo.comment}数据")    @ApiImplicitParam(value = "$!{tableInfo.comment}", paramType = "body", name = "$!{domainName}", dataType = "$!{tableInfo.name}", required = true)    public ApiResult addOrUpdate$!{tableInfo.name}(@RequestBody $!{tableInfo.name} $!{domainName}){        return $!{serviceName}.addOrUpdate$!{tableInfo.name}($!{domainName});    }        @PostMapping("find")    @ApiOperation("分页查询$!{tableInfo.comment}数据")    @ApiImplicitParam(value = "查询条件", paramType = "body", name = "$!{domainName}Query", dataType = "$!{tableInfo.name}Query", required = true)    public ApiResult find$!{tableInfo.name}(@RequestBody $!{tableInfo.name}Query $!{domainName}Query){        return $!{serviceName}.find$!{tableInfo.name}($!{domainName}Query);    }    }

6.domain

#*说明文档:属性$packageName 选择的包名$author 设置中的作者$encode 设置的编码$modulePath 选中的module路径$projectPath 项目绝对路径对象$tableInfo 表对象    obj 表原始对象    name 表名(转换后的首字母大写)    comment 表注释    fullColumn 所有列    pkColumn 主键列    otherColumn 其他列    savePackageName 保存的包名    savePath 保存路径    saveModelName 保存的model名称columnInfo 列对象    obj 列原始对象    name 列名(首字母小写)    comment 列注释    type 列类型(类型全名)    ext 附加字段(Map类型)$tableInfoList 所有选中的表$importList 所有需要导入的包集合回调&callback    setFileName(String) 设置文件储存名字    setSavePath(String) 设置文件储存路径,默认使用选中路径工具$tool    firstUpperCase(String) 首字母大写方法    firstLowerCase(String) 首字母小写方法    getClsNameByFullName(String) 通过包全名获取类名    getJavaName(String) 将下划线分割字符串转驼峰命名(属性名)    getClassName(String) 将下划线分割字符串转驼峰命名(类名)    append(... Object) 多个数据进行拼接$time    currTime(String) 获取当前时间,指定时间格式(默认:yyyy-MM-dd HH:mm:ss)*###设置回调$!callback.setFileName($tool.append($tableInfo.name, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/domain"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}domain;import com.alibaba.fastjson.annotation.JSONField;#foreach($import in $importList)import $!import;#endimport io.swagger.annotations.ApiModelProperty;/** * $!{tableInfo.comment}($!{tableInfo.name})表实体类 * * @author $!author * @since $!time.currTime() */public class $!{tableInfo.name} {#foreach($column in $tableInfo.fullColumn)    #if(${column.comment})  /**${column.comment}*/     @ApiModelProperty(value = "${column.comment}", required = false)#end         #if($!{tool.getClsNameByFullName($column.type)}=="Date") @JSONField(format = "yyyy-MM-dd HH:mm:ss")#end        private $!{tool.getClsNameByFullName($column.type)} $!{column.name};#end#foreach($column in $tableInfo.fullColumn)    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}

7.Mapper

##定义初始变量#set($tableName = $tool.append("I",$tableInfo.name, "Mapper"))##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/persistence"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}persistence;import cn.com.oceansoft.osc.ms.common.persistence.BaseMapper;#if($tableInfo.savePackageName)import $!{tableInfo.savePackageName}.#{end}domain.$!{tableInfo.name};#if($tableInfo.savePackageName)import $!{tableInfo.savePackageName}.#{end}domain.$!{tableInfo.name}Query;/** * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层 * * @author $!author * @since $!time.currTime() */public interface $!{tableName} extends BaseMapper<$!{tableInfo.name},$!{tableInfo.name}Query>{}

8.MapperXml

##定义初始变量#set($tableName = $tool.append($tableInfo.name, "Mapper"))##设置回调$!callback.setFileName($tool.append($tableName, ".xml"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/persistence/postgresql"))<?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}.persistence.I$!{tableName}"><resultMap id="$!{tableInfo.obj.name}" type="$!{tableInfo.savePackageName}.domain.$!{tableInfo.name}">#foreach($column in $tableInfo.fullColumn)<result column="$!{column.obj.name}" property="$!{column.name}"/>#end</resultMap><insert id="add" parameterType="$!{tableInfo.savePackageName}.domain.$!{tableInfo.name}" flushCache="true">INSERT INTO $!{tableInfo.obj.name} (#foreach($column in $tableInfo.fullColumn)    $!{column.obj.name}#if($foreach.hasNext),#end#end    )VALUES (#foreach($column in $tableInfo.fullColumn)    #{$!{column.name}}#if($foreach.hasNext),#end#end)</insert><delete id="del">DELETE FROM  $!{tableInfo.obj.name}WHERE guid = #{guid}</delete><update id="set">UPDATE $!{tableInfo.obj.name}<set>#foreach($column in $tableInfo.fullColumn)#if($column.obj.name!='guid'||$column.obj.name!='GUID')    <if test="$!{column.name}!=null">        $!{column.obj.name}=#{$!{column.name}}#if($foreach.hasNext),    #end    </if>#end#end</set><where>guid=#{guid} </where></update><select id="get" resultMap="$!{tableInfo.obj.name}">SELECT #foreach($column in $tableInfo.fullColumn)    t.$!{column.obj.name}#if($foreach.hasNext),  #end#end FROM $!{tableInfo.obj.name} t<where>guid=#{guid} </where></select><select id="getCountByGuid" resultType="int">    select count(1) FROM     $!{tableInfo.obj.name} t<where>guid=#{guid} </where></select><select id="find" resultMap="$!{tableInfo.obj.name}">SELECT #foreach($column in $tableInfo.fullColumn)    t.$!{column.obj.name}#if($foreach.hasNext),  #end#end FROM $!{tableInfo.obj.name} t <where>  </where></select></mapper>

9.baseMapper

##定义初始变量#set($tableName = "BaseMapper")##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/common/persistence"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}common.persistence;import java.util.List;/** * @author $!author * @since $!time.currTime() */public interface BaseMapper<T,S> {      /**     * 通过id获取单条数据     *     * @param guid 主键     * @return 数据     */    T get(String guid);    /**     * 通过id删除数据     *     * @param guid 主键     * @return 删除条数     */    int del(String guid);    /**     * 添加数据     *     * @param t 数据     * @return 添加条数     */    int add(T t);    /**     * 修改数据     *     * @param t 数据     * @return 修改条数     */    int set(T t);    /**     * 通过id获取条数     *     * @param guid 主键     * @return 获取条数     */    int getCountByGuid(String guid);    /**     * 分页查询数据     *     * @param s 查询条件     * @return 查询结果     */    List<T> find(S s);}

10.baseEntity

##定义初始变量#set($tableName = "BaseEntity")##设置回调$!callback.setFileName($tool.append($tableName, ".java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/common/domain"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}common.domain;import com.alibaba.fastjson.annotation.JSONField;import java.io.Serializable;import java.util.Date;/** * @author $!author * @since $!time.currTime() */public abstract class BaseEntity implements Serializable {    /**     * 主键     */    private String guid;    /**     * 创建人Id     */    private String createUserId;    /**     * 创建人姓名     */    private String createUserName;    /**     * 创建部门id     */    private String createDeptId;    /**     * 创建部门名称     */    private String createDeptName;    /**     * 创建时间     */    @JSONField(format= "yyyy-MM-dd HH:mm:ss")    private Date createTime;    /**     * 更新人Id     */    private String updateUserId;    /**     * 更新人姓名     */    private String updateUserName;    /**     * 更新部门id     */    private String updateDeptId;    /**     * 更新部门名称     */    private String updateDeptName;    /**     * 更新时间     */    @JSONField(format= "yyyy-MM-dd HH:mm:ss")    private Date updateTime;    public BaseEntity() {    }    public BaseEntity(String guid) {        this();        this.guid = guid;    }    public String getGuid() {        return guid;    }    public void setGuid(String guid) {        this.guid = guid;    }    public String getCreateUserId() {        return createUserId;    }    public void setCreateUserId(String createUserId) {        this.createUserId = createUserId;    }    public String getCreateUserName() {        return createUserName;    }    public void setCreateUserName(String createUserName) {        this.createUserName = createUserName;    }    public String getCreateDeptId() {        return createDeptId;    }    public void setCreateDeptId(String createDeptId) {        this.createDeptId = createDeptId;    }    public String getCreateDeptName() {        return createDeptName;    }    public void setCreateDeptName(String createDeptName) {        this.createDeptName = createDeptName;    }    public Date getCreateTime() {        return createTime;    }    public void setCreateTime(Date createTime) {        this.createTime = createTime;    }    public String getUpdateUserId() {        return updateUserId;    }    public void setUpdateUserId(String updateUserId) {        this.updateUserId = updateUserId;    }    public String getUpdateUserName() {        return updateUserName;    }    public void setUpdateUserName(String updateUserName) {        this.updateUserName = updateUserName;    }    public String getUpdateDeptId() {        return updateDeptId;    }    public void setUpdateDeptId(String updateDeptId) {        this.updateDeptId = updateDeptId;    }    public String getUpdateDeptName() {        return updateDeptName;    }    public void setUpdateDeptName(String updateDeptName) {        this.updateDeptName = updateDeptName;    }    public Date getUpdateTime() {        return updateTime;    }    public void setUpdateTime(Date updateTime) {        this.updateTime = updateTime;    }}

11.ApiQueryBase

##设置回调$!callback.setFileName("ApiQueryBase.java")$!callback.setSavePath($tool.append($tableInfo.savePath, "/domain"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}domain;    import java.util.HashMap;import java.util.Map;import java.util.regex.Pattern;public class ApiQueryBase {    private int ps=10;    private int pi =1;    private String sd;    private String sb    ;    private String kw    ;    private Map<String, Object> conditions = new HashMap<>();    // 条件参数格式:q_my_name_s_lk    // my_name为数据库字段名,大小写按数据库来,有前缀的加前缀t.my_name    // s代表字符串,n数字,d日期,dd长格式日期    // lk代表like,lt 代表 >,eq 代表 =,....    // 以and开头    private String where;    public void setWhere(String where) {        this.where = where;    }    public Map<String, Object> getConditions() {        return conditions;    }    public void setConditions(Map<String, Object> conditions) {        this.conditions = conditions;    }    public int getPs() {        return ps;    }    public void setPs(int ps) {        this.ps = ps;    }    public int getPi() {        return pi;    }    public void setPi(int pi) {        this.pi = pi;    }    /**     * 过滤非法字符,防sql注入     * @return     */    public String getSd() {        if(sd!=null&&!Pattern.matches("[\\w.]*",sd)){                return null;        }        return sd;    }    public void setSd(String sd) {        this.sd = sd;    }    public String getSb() {        if(sb!=null&&!Pattern.matches("[\\w.]*",sb)){                return null;        }        return sb;    }    public void setSb(String sb) {        this.sb = sb;    }    public String getKw() {        return kw;    }    public void setKw(String kw) {        this.kw = kw;    }    public String getWhere() {        return where;    }    //去掉setWhere方法,否则要处理sql注入问题}

12.query

##设置回调$!callback.setFileName($tool.append($tableInfo.name, "Query.java"))$!callback.setSavePath($tool.append($tableInfo.savePath, "/domain"))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}domain;import $!{tableInfo.savePackageName}.domain.ApiQueryBase;/** * $!{tableInfo.comment}($!{tableInfo.name})表查询实体类 * * @author $!author * @since $!time.currTime() */public class $!{tableInfo.name}Query extends ApiQueryBase{}

13.OracleMapperXml

##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Mapper"))

##设置回调
$!callback.setFileName($tool.append($tableName, ".xml"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/persistence/oracle"))


<?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}.persistence.I$!{tableName}">
<resultMap id="$!{tableInfo.obj.name}" type="$!{tableInfo.savePackageName}.domain.$!{tableInfo.name}">
#foreach($column in $tableInfo.fullColumn)
<result column="$!{column.obj.name}" property="$!{column.name}"/>
#end
</resultMap>
<insert id="add" parameterType="$!{tableInfo.savePackageName}.domain.$!{tableInfo.name}" flushCache="true">
INSERT INTO $!{tableInfo.obj.name} (
#foreach($column in $tableInfo.fullColumn)
    $!{column.obj.name}#if($foreach.hasNext),
#end
#end

)VALUES (
#foreach($column in $tableInfo.fullColumn)
    #{$!{column.name}}#if($foreach.hasNext),
#end
#end
)
</insert>
<delete id="del">
DELETE FROM  $!{tableInfo.obj.name}
WHERE guid = #{guid}
</delete>
<update id="set">
UPDATE $!{tableInfo.obj.name}
<set>
#foreach($column in $tableInfo.fullColumn)
    #if($column.obj.name!='guid')
        $!{column.obj.name}=#{$!{column.name}} #if($foreach.hasNext),  
  #end
    #end
#end

</set>
<where>
guid=#{guid} 
</where>
</update>
<select id="get" resultMap="$!{tableInfo.obj.name}">
SELECT 
#foreach($column in $tableInfo.fullColumn)
    t.$!{column.obj.name}#if($foreach.hasNext),  
#end
#end
 FROM $!{tableInfo.obj.name} t
<where>
guid=#{guid} 
</where>
</select>
<select id="getCountByGuid" resultType="int">
    select count(1) FROM 
    $!{tableInfo.obj.name} t
<where>
guid=#{guid} 
</where>
</select>
<select id="find" resultMap="$!{tableInfo.obj.name}">
SELECT 
#foreach($column in $tableInfo.fullColumn)
    t.$!{column.obj.name}#if($foreach.hasNext),  
#end
#end
 FROM $!{tableInfo.obj.name} t
</select>
</mapper>

四、Global Config

1.int

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

2.define

#*不仅仅是简单的全局变量,完全的自由发挥,下面给出一些例子。需要的请自行扩展。注意:全局变量有优先处理权限,会影响到模板的任意同名变量,所以在模板中一定不要定义与全局变量同名的变量。*###定义区域(Velocity宏定义)##定义设置表名后缀的宏定义,调用方式:#setTableSuffix("Test")#macro(setTableSuffix $suffix)    #set($tableName = $!tool.append($tableInfo.name, $suffix))#end##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix("Test")#macro(setPackageSuffix $suffix)#if($tableInfo.savePackageName)package $!{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 * @since $!time.currTime() */#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

3.autoImport

##自动导入包(仅导入实体属性需要的包,通常用于实体类)#foreach($import in $importList)import $!import;#end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值