基于实体类为主导的代码生成器,可基于实体类快速的生成mybatis的相关配置

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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值