步骤1:安装插件并重启启动Idea
步骤2:找到idea的dataSource,并连接数据库
步骤3:选择需要的表,选中easy code
步骤4:指定文件生成的module,路径以及需要生成的类使用的模板
easyCode 默认是mybatis,因项目使用jpa,所以此处提供jpa模板:
entity:
##引入宏定义
$!define
##定义初始变量
#set($entityName = $tool.append(“Base”, $tableInfo.name))
##设置回调
$!callback.setFileName($tool.append($entityName, “.java”))
$!callback.setSavePath($tool.append($tableInfo.savePath, “/model”))
##使用宏定义设置包后缀
#setPackageSuffix(“model”)
##使用全局变量实现默认包导入
$!autoImport
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Entity;
import org.hibernate.annotations.GenericGenerator;
import java.io.Serializable;
##使用宏定义实现类注释信息
#tableComment(“实体类”)
@Entity
@Table(name=”$!{tableInfo.obj.name}”)
public class $!{entityName} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})/**
* ${column.comment}
*/#end
#if(${velocityCount} == 1)
@Id
@Column(name = “$column.obj.getName()”)
@GenericGenerator(name = “system-uuid”, strategy = “uuid”)
@GeneratedValue(generator = “system-uuid”)
#else
@Column(name = “$column.obj.getName()”)
#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.fullColumn)
##使用宏定义实现get,set方法
#getSetMethod($column)
#end
}
model模板:
##定义初始变量
#set($modelName =$tool.append($tableInfo.name))
#set($entityName = $tool.append(“Base”, $tableInfo.name))
##设置回调
$!callback.setFileName($tool.append($modelName, “.java”))
$!callback.setSavePath($tool.append($tableInfo.savePath, “/model”))#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}model;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表数据库model
*
* @author $!author
* @since $!time.currTime()*/
public class${modelName} extends ${entityName} {
}
dao模板:
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, “Dao”))
##设置回调
$!callback.setFileName($tool.append($tableName, “.java”))
$!callback.setSavePath($tool.append($tableInfo.savePath, “/dao”))
##拿到主键#if(!$tableInfo.pkColumn.isEmpty())#set($pk = $tableInfo.pkColumn.get(0))
#set($pkType = $tableInfo.pkColumn.get(0).shortType)
#end#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;import $!{tableInfo.savePackageName}.model.Base$!{tableInfo.name};
import com.acmtc.common.dao.IRepository;/**
* $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
*
* @author $!author
* @since $!time.currTime()*/
public interface $!{tableName} extends IRepository{
}
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 $!{tableInfo.savePackageName}.model.$!{tableInfo.name};
import java.util.List;/**
* $!{tableInfo.comment}($!{tableInfo.name})表服务接口
*
* @author $!author
* @since $!time.currTime()*/
public interface $!{tableName} {
}
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}.model.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import javax.annotation.Resource;
import java.util.List;/**
* $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
*
* @author $!author
* @since $!time.currTime()*/@Service
@Transactionalpublic class $!{tableName} implements $!{tableInfo.name}Service {
@Resourceprivate $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao;
}
注:因项目各异,具体使用时候可能需要微小调整