Idea中使用Easy Code更具数据库表自动生成java代码
步骤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<Base$!{tableInfo.name}, ${pkType}> { }
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 @Transactional public class $!{tableName} implements $!{tableInfo.name}Service { @Resource private $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao; }
注:因项目各异,具体使用时候可能需要微小调整
我们曾如此渴望生命的波澜,到后来才发现,人生最曼妙的风景是内心的淡定与从容

浙公网安备 33010602011771号