MyBatis plus 代码生成器

[复制链接]
发表于 2023-2-21 00:16:36 | 显示全部楼层 |阅读模式

  • 导入依赖
    1. <dependency>
    2.     <groupId>com.baomidou</groupId>
    3.     <artifactId>mybatis-plus-generator</artifactId>
    4.     <version>3.4.1</version>
    5. </dependency>
    6. <dependency>
    7.     <groupId>org.apache.velocity</groupId>
    8.     <artifactId>velocity-engine-core</artifactId>
    9.     <version>2.3</version>
    10. </dependency>
    复制代码
  • 写一个类 Generator ,名字叫什么都行,写在哪里也都可以,在这个类里面写main方法,运行main方法即可生成代码,内容如下:
    1. public static void main(String[] args) {
    2.         //获取代码生成器对象
    3.         AutoGenerator autoGenerator = new AutoGenerator();
    4.         //设置数据库相关配置
    5.         DataSourceConfig dataSource = new DataSourceConfig();
    6.         dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
    7.         dataSource.setUrl("jdbc:mysql://localhost:3306/db?serverTimezone=UTC");
    8.         dataSource.setUsername("root");
    9.         dataSource.setPassword("1234");
    10.         autoGenerator.setDataSource(dataSource);
    11.         //设置全局配置
    12.         GlobalConfig globalConfig = new GlobalConfig();
    13.         globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");//设置代码输出位置,否则默认输出到D://目录下
    14.         globalConfig.setOpen(false);//设置生成完毕后是否打开生成代码的目录,一般选择false,不需要打开目录
    15.         globalConfig.setAuthor("tuuli");//作者名字,会在注释中添加作者名字
    16.         globalConfig.setFileOverride(true);//是否覆盖原始生成的文件,选择true后,生成时若原来已有相同文件会自动覆盖,谨慎操作
    17.         globalConfig.setMapperName("%sDao");//设置数据层接口名,%s为占位符,指代模块名称,默认为"%sMapper"
    18.         globalConfig.setIdType(IdType.AUTO);//设置id生成策略
    19.         autoGenerator.setGlobalConfig(globalConfig);
    20.         //设置包名配置
    21.         PackageConfig packageConfig = new PackageConfig();
    22.         packageConfig.setParent("com.tuuli");//设置生成的包名,默认为"com.baomidou"
    23.         packageConfig.setEntity("domain");//设置实体类包名,默认为entity
    24.         packageConfig.setMapper("dao");//设置数据层包名,默认为mapper
    25.         autoGenerator.setPackageInfo(packageConfig);
    26.         //策略设置
    27.         StrategyConfig strategyConfig = new StrategyConfig();
    28.         strategyConfig.setInclude("tb_course");//设置参与生成的表名,可填一个或多个
    29.         strategyConfig.setTablePrefix("tb_");//设置数据库表名的前缀名称,设置后会省略该前缀
    30.         strategyConfig.setRestControllerStyle(false);//设置是否启用Rest风格
    31.         //strategyConfig.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名,没有就不填
    32.         strategyConfig.setEntityLombokModel(true);//设置是否启用Lombok
    33.         autoGenerator.setStrategy(strategyConfig);
    34.         //执行生成操作
    35.         autoGenerator.execute();
    36.     }
    复制代码
  • 测试

    • 新建一个springboot项目,导入相关依赖坐标,初始时目录结构如下:



  • 新建数据库,数据名db3,新建了两个表,分别为tb_user、tb_course,表结构如下:
    tb_user

    tb_course

    表中内容均为空。
  • 生成代码,此处代码生成器的完整代码的如下:
    1. package com.tuuli;
    2. import com.baomidou.mybatisplus.annotation.IdType;
    3. import com.baomidou.mybatisplus.generator.AutoGenerator;
    4. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    5. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    6. import com.baomidou.mybatisplus.generator.config.PackageConfig;
    7. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    8. /**
    9. * @author tuuli
    10. * @time Created in 2023/2/20 23:21
    11. * @description
    12. */
    13. public class Generator {
    14.     public static void main(String[] args) {
    15.         //获取代码生成器对象
    16.         AutoGenerator autoGenerator = new AutoGenerator();
    17.         //设置数据库相关配置
    18.         DataSourceConfig dataSource = new DataSourceConfig();
    19.         dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
    20.         dataSource.setUrl("jdbc:mysql://localhost:3306/db3?serverTimezone=UTC");
    21.         dataSource.setUsername("root");
    22.         dataSource.setPassword("1234");
    23.         autoGenerator.setDataSource(dataSource);
    24.         //设置全局配置
    25.         GlobalConfig globalConfig = new GlobalConfig();
    26.         globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");//设置代码输出位置,否则默认输出到D://目录下
    27.         globalConfig.setOpen(false);//设置生成完毕后是否打开生成代码的目录,一般选择false,不需要打开目录
    28.         globalConfig.setAuthor("tuuli");//作者名字,会在注释中添加作者名字
    29.         globalConfig.setFileOverride(true);//是否覆盖原始生成的文件,选择true后,生成时若原来已有相同文件会自动覆盖,谨慎操作
    30.         globalConfig.setMapperName("%sDao");//设置数据层接口名,%s为占位符,指代模块名称,默认为"%sMapper"
    31.         globalConfig.setIdType(IdType.AUTO);//设置id生成策略
    32.         autoGenerator.setGlobalConfig(globalConfig);
    33.         //设置包名配置
    34.         PackageConfig packageConfig = new PackageConfig();
    35.         packageConfig.setParent("com.tuuli");//设置生成的包名,默认为"com.baomidou"
    36.         packageConfig.setEntity("domain");//设置实体类包名,默认为entity
    37.         packageConfig.setMapper("dao");//设置数据层包名,默认为mapper
    38.         autoGenerator.setPackageInfo(packageConfig);
    39.         //策略设置
    40.         StrategyConfig strategyConfig = new StrategyConfig();
    41.         strategyConfig.setInclude("tb_course", "tb_user");//设置参与生成的表名,可填一个或多个
    42.         strategyConfig.setTablePrefix("tb_");//设置数据库表名的前缀名称,设置后会省略该前缀
    43.         strategyConfig.setRestControllerStyle(false);//设置是否启用Rest风格
    44.         //strategyConfig.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名,没有就不填
    45.         strategyConfig.setEntityLombokModel(true);//设置是否启用Lombok
    46.         autoGenerator.setStrategy(strategyConfig);
    47.         //执行生成操作
    48.         autoGenerator.execute();
    49.     }
    50. }
    复制代码
  • 运行成功,目录内容已发生改变,已生成相关代码

controller层代码:

dao层代码(请手动添加@Mapper注解,否则后面会出错):

domain层代码:

mapper.xml

service接口:

service实现类:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表