我是怎样快速生成开源系统中的代码的?

168 阅读3分钟

写在前面:

最近有一个想法,做一个程序员师徒系统。因为在大学期间的我在学习java的时候非常地迷茫,找不到自己的方向,也没有一个社会上有经验的前辈去指导,所以走了很多的弯路。后来工作了,想把自己的避坑经验分享给别人,但是发现身边都是有经验的开发者,也没有机会去分享自己的想法,所以富贵同学就想做一个程序员专属的师徒系统,秉承着徒弟能够有人指教少走弯路,师傅能桃李满天下的目的,所以开始做这个师徒系统,也会同步更新该系统所用到的技术,并且作为教程分享给大家,希望大家能够关注一波。 请添加图片描述 好的,接下来给大家讲一讲改系统中自动生成代码用到的技术:MybatisPlus,用SpringBoot整合MybatisPlus。 这个框架是中国人写的哈,所以他的文档也就通俗易懂,首先贴一波他的官方文档: 官方文档 很多东西上面已经讲的很详细了,如果有不懂的小伙伴在评论区留言,后面会考虑出一期MybatisPlus的教程,今天我们来讲一下MybatisPlus里面的一个小功能:快速生成代码。 同样贴一波地址快速生成代码文档 在这个文档里我们可以看到快速生成的例子:

FastAutoGenerator.create("url", "username", "password")
	.globalConfig(builder -> {
		builder.author("baomidou") // 设置作者
            .enableSwagger() // 开启 swagger 模式
			.fileOverride() // 覆盖已生成文件
			.outputDir("D://"); // 指定输出目录
	})
	.packageConfig(builder -> {
		builder.parent("com.baomidou.mybatisplus.samples.generator") // 设置父包名
			.moduleName("system") // 设置父包模块名
            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://")); // 设置mapperXml生成路径
	})
	.strategyConfig(builder -> {
		builder.addInclude("t_simple") // 设置需要生成的表名
			.addTablePrefix("t_", "c_"); // 设置过滤表前缀
	})
	.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
	.execute();

下面富贵同学就来给大家讲解一下这个小东东:

第一步:导入jar包

		 <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>

第二步,在test类里面添加以下代码:

   FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/apprentice?serverTimezone=PRC", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("masiyi") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .disableOpenDir()//不打开目录
                            .commentDate("yyyy-MM-dd")//注释时间
                            .outputDir("E:\\msyWorkspace\\Programmer-Apprentice\\apprentice\\src\\main\\java"); // 指定输出目录

                })
                .packageConfig(builder -> {
                    builder.parent("com.wangfugui") // 设置父包名
                            .moduleName("apprentice") // 设置父包模块名
                            .entity("dao.domain")//实体类包
                            .service("service")//service包
                            .serviceImpl("service.impl")//实现类bao
                            .mapper("dao.mapper")//mapper包
                            .controller("controller")//controller包
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "E:\\msyWorkspace\\Programmer-Apprentice\\apprentice\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("user_copy1"); // 设置需要生成的表名
                })
                .execute();//执行

packageConfig里面要注意填写你对应的包位置,相对位置是src\\main\\java注释我都写在代码注释里了,最后执行这个方法就生成对应的各个层的代码了!

说在之后

师徒系统我会一直更新,因为是开源的项目,所以我也希望又更多的小伙伴加入进来!! 这是程序员师徒管理系统的地址: 程序员师徒管理系统 在这里插入图片描述