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;

  
}

注:因项目各异,具体使用时候可能需要微小调整

posted @ 2019-12-20 16:30  zlAdmin  阅读(1039)  评论(0)    收藏  举报