1.实体
package ...;
import io.gd.generator.annotation.Field;
import io.gd.generator.annotation.Type;
import io.gd.generator.annotation.query.Query;
import io.gd.generator.annotation.query.QueryModel;
import io.gd.generator.annotation.view.View;
import io.gd.generator.annotation.view.ViewObject;
import io.gd.generator.api.query.Predicate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
* @author Eng
* @date 2021-06-02 下午 6:11
* @Description https://github.com/goudai/gd-generator GitHub地址
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "c_info")//数据库表名
@Type(label = "信息")
@QueryModel
@Entity
@ViewObject(groups = {CInfo.CARGO_INFO_VO})//生成vo类,可生成多个Vo类
public class CInfo implements Serializable {
public static final String CARGO_INFO_VO = "CInfoVo";Vo类名称
// 注解具体含义查看Github文档说明
@Id
@Field(label = "id")
@View(groups = {CARGO_INFO_VO})
@Query({Predicate.EQ, Predicate.NEQ, Predicate.IN})
private Long id;
@Field(label = "号")
@Query(Predicate.EQ)
@View(groups = {CARGO_INFO_VO})
@Column(length = 64)
private String code;
@Field(label = "名称")
@Query({Predicate.EQ})
@View(groups = {CARGO_INFO_VO})
@Column()
private String name;
@Field(label = "信息")
@Query({Predicate.EQ})
@View(groups = {CARGO_INFO_VO})
@Column()
private String info;
@Field(label = "数量")
@Query({Predicate.EQ})
@View(groups = {CARGO_INFO_VO})
@Column()
private Integer total;
}
2.创建存放生成类的包
3.Generate.class
/**
* @author Eng
* @date 2021-06-02 上午 9:23
* @Description
*/
import io.gd.generator.Config;
import io.gd.generator.Generator;
import io.gd.generator.handler.*;
import java.nio.file.Paths;
/**
* @author
* @date 2020/6/15 11:36
* @Description https://github.com/goudai/gd-generator 项目地址,可查看注解使用配置
*/
public class Generate {
public static void main(String[] args) throws Exception {
Config config = new Config();
//获取系统默认路径,日志文件名称位置System.getProperty("user.dir")
config.setGenLogFile(Paths.get(System.getProperty("user.dir") , "generate.log").toString());
//数据库连接地址、名称
config.setUrl("jdbc:mysql://localhost:3306/ttt");
//实体包名
config.setEntityPackage("com.eng.model");
//mapper文件包名
config.setMybatisMapperPackage("com.eng.mapper");
//获取系统默认地址
String projectPath = System.getProperties().get("user.dir")+"";
System.out.println("默认地址"+projectPath);
//mapper文件路径,如果src前面加上module名字就是会创建到其他位置(坑没注意以为不生成文件)
config.setMybatisMapperPath(projectPath + "/src/main/java/com/eng/mapper");
//mapper.xml文件位置
config.setMybatisXmlPath(projectPath + "/src/main/resources/mapper");
//数据库名称 密码
config.setUsername("root");
config.setPassword("123");
//s是否开启Lombok注解
config.setUseLombok(true);
//查询包名
config.setQueryModelPackage("com.eng.query");
//查询路径
config.setQueryModelPath(projectPath + "/src/main/java/com/eng/query");
//VO类的生成
Generator.generate(config,
new VoHandler("com.eng.vo", projectPath + "/src/main/java/com/eng/vo", true),
new QueryModelHandler(),
new MybatisMapperHandler(),
new MybatisXmlHandler(),
new MysqlHandler()
);
}
/*public static void main(String[] args) throws Exception {
Config config = new Config();
config.setGenLogFile(Paths.get(System.getProperty("user.dir") , "generate.log").toString());
config.setUrl("jdbc:mysql://127.0.0.1:3306/redistest?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull");
config.setEntityPackage("com.eng.generate.entity");
config.setMybatisMapperPackage("com.eng.generate.mapper");
//D:\\Work\\Workspace\\xx-parent
//Users/freeman/IdeaProjects/xxx-parent
String projectPath = System.getProperties().get("user.dir") +"";
System.out.println("projectPath: " + projectPath);
//xxx-service-impl\\src\\main\\java\\com\\xx\\mapper & windows
//xxx-service-impl/src/main/java/com/xx/mapper & mac or linux
config.setMybatisMapperPath(projectPath + "/src/main/java/com/eng/generate/mapper");
//\\xx-service-impl\\src\\main\\resources\\com\\xx\\mapping & windows
//\\xx-service-impl/src/main/resources/com/xx/mapping & mac or linux
config.setMybatisXmlPath(projectPath + "/src/main/resources/mapper");
config.setUsername("root");
config.setPassword("123456");
// is use lombok default : true
config.setUseLombok(true);
//com.xx.model.query
config.setQueryModelPackage("com.eng.generate.query");
//\\xx-service\\src\\main\\java\\com\\xx\\model\\query & windows
//\\xx-service/src/main/java/com/xx/model/query & mac or linux
config.setQueryModelPath(projectPath + "/src/main/java/com/eng/generate/query");
Generator.generate(config,
new VoHandler("com.eng.generate.vo", projectPath + "/src/main/java/com/eng/generate/vo", true),
new QueryModelHandler(),
new MybatisMapperHandler(),
new MybatisXmlHandler(true),
new MysqlHandler(true)
);
}*/
}
4.pom
<!--goudai-->
<dependency>
<groupId>io.github.goudai</groupId>
<artifactId>gd-generator-api</artifactId>
<version>${gd-generator-api.version}</version>
</dependency>
<dependency>
<groupId>io.github.goudai</groupId>
<artifactId>gd-generator-default</artifactId>
<version>${gd-generator-default.version}</version>
</dependency>