mybatis-plus代码生成器

本文介绍了如何在Mybatis-Plus 3.0.3版本后手动添加代码生成器和模板引擎依赖,并详细展示了如何配置及运行代码生成器,以自动生成Java持久层代码。涉及的表包括tb_question等,以及全局配置、数据源、包结构和策略设置。
摘要由CSDN通过智能技术生成

导入依赖:

<!--mybatis-plus: 3.0.3版本之后,移除了代码生成器和模板引擎的依赖,所以需要手动添加-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
<!--代码生成器依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>

<!--模板引擎依赖-->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.2</version>
</dependency>

生成器:

/**
 * mybatis-plus代码生成器
 */
public class CodeGenerator {

    //要生成代码的表
     private static String tables[] = {
//            "tb_classes",
//            "tb_college",
//            "tb_comment",
//            "tb_examination",
//            "tb_grade",
//            "tb_link",
//            "tb_log",
//            "tb_permission",
//            "tb_profession",
//            "tb_profession_category",
            "tb_question",
//            "tb_role",
//            "tb_subject",
//            "tb_sys",
//            "tb_user"
    };

    public static void main(String[] args) {
        generator();
    }


    public static void generator(){
        //1.代码生成器
        AutoGenerator generator = new AutoGenerator();

        //2.全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        String projectUrl = System.getProperty("user.dir"); //获取当前项目路径
        globalConfig.setOutputDir(projectUrl + "/src/main/java");    //生成文件的根目录
        globalConfig.setOpen(false);    //生成完文件后不弹出文件框
        globalConfig.setFileOverride(true);    //是否覆盖文件
        globalConfig.setAuthor("Linging");      //开发人员
        globalConfig.setEnableCache(false);     //是否在xml中开启二级缓存
        globalConfig.setBaseResultMap(true);    //是否在生成xml文件中生成属性与字段的映射
        globalConfig.setBaseColumnList(false);  //是否在生成xml文件中生成baseColumnList

        globalConfig.setMapperName("%sMapper"); //指定生成的mapper接口名
        globalConfig.setXmlName("%sMapper");    //指定生成的xml名
        globalConfig.setServiceName("%sService");           //指定生成的service接口名
        globalConfig.setServiceImplName("%sServiceImpl");   //指定生成的service接口实现类的名字
        globalConfig.setControllerName("%sController");     //指定生成controller名
        globalConfig.setIdType(IdType.AUTO);       //指定生成的主键的ID类型
        globalConfig.setDateType(DateType.ONLY_DATE);   //util包下的时间
        generator.setGlobalConfig(globalConfig);


        //3.数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);   //数据库类型
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");   //设置数据库驱动
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/exam?characterEncoding=utf8&useSSL=false&serverTimezone=UTC");          //设置数据库url
        dataSourceConfig.setUsername("root");     //用户名
        dataSourceConfig.setPassword("123456");     //密码
        generator.setDataSource(dataSourceConfig);


        //4.包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.linging.exam");    //父级包名
        packageConfig.setController("controller");      //指定controller层包名字
        packageConfig.setService("service");            //指定service层包名字
        packageConfig.setServiceImpl("service.impl");   //指定impl包名字
        packageConfig.setMapper("mapper");              //指定mapper包名字
        packageConfig.setXml("mapper");                 //指定xml包名字
        packageConfig.setEntity("pojo");                //指定pojo包名字
        generator.setPackageInfo(packageConfig);


        //5.模板配置
        //略.....

        //6.策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);    //表名生成策略,下划线转驼峰命名
        strategyConfig.setTablePrefix("tb_");   //去掉表前缀
        strategyConfig.setInclude(tables);        //需要生成的表名
        strategyConfig.setChainModel(true); //实体是否为链式

        //create_time字段和update_time字段自动生成
        List<TableFill> fills = new ArrayList<TableFill>();
        TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
        TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
        fills.add(create_time);
        fills.add(update_time);
        strategyConfig.setTableFillList(fills);  //表填充字段

        strategyConfig.setSuperMapperClass("");
        strategyConfig.setSuperServiceClass("");
        strategyConfig.setSuperServiceImplClass( "");
        generator.setStrategy(strategyConfig);

        //7.代码生成
        generator.execute();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值