# CodeGenerator **Repository Path**: lanche2016/CodeGenerator ## Basic Information - **Project Name**: CodeGenerator - **Description**: CodeGenerator是一个轻量的代码生成工具,可以在常规的项目开发初始阶段生成model、dao、Mapper、 mapper(mybatis)、service、controller,项目思路来源于mybatis-generator,不过代码更加简洁易控制 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 28 - **Created**: 2017-08-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 代码自动生成工具 一、简介 1.1 概述 CodeGenerator是一个轻量的代码生成工具,可以在常规的项目开发初始阶段生成model、dao、Mapper、 mapper(mybatis)、service、controller,项目思路来源于mybatis-generator,不过代码更加简洁易控制 1.2 特性 1.2.1、代码运行既可以下载源码运行AppTest测试用例,也可以使用maven插件的方式运行(推荐使用) 1.2.2、代码模块可以自定义生成,比如只需要model、dao,Mapper、mapper的代码,可以在配置文件配置,生成目录也可以配置,规则是约定大于配置 1.2.3、可以修改自定义的模版样式 1.3 使用方式 1.3.1、首页check源码在本地,如果需要本地测试用例运行,请看AppTest public class AppTest { private static ApplicationContext context; private static GeneratorFactoryImpl generatorFactory; @BeforeClass public static void beforeClass(){ try { context = new ClassPathXmlApplicationContext("classpath:spring-generator.xml"); generatorFactory=(GeneratorFactoryImpl)context.getBean("generatorFactory"); } catch (BeansException e) { e.printStackTrace(); } } @AfterClass public static void doAfter(){ if(context !=null && context instanceof ClassPathXmlApplicationContext){ ((ClassPathXmlApplicationContext) context).close(); } } @Test public void codeGeneratorTest() { generatorFactory.defaultGeneratorStarter(); } } 1.3.2、运行之前需要修改一下spring-generator.xml,配置每个模块的生成器 2、运行之前需要修改一下config-generator.properties,配置数据源等信息 ##mysql连接配置 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/shiro jdbc.username=root jdbc.password=root generator.authorName=HuJiFang ##是否生成注释 generator.annotation=false ##生成代码位置 generator.location=src ##文件包名称 generator.project.name=main ##生成那些层 generator.layers=mapper,mapperConfig,model,service,result ##包名称 generator.basePackage=com.oneplus.code.temp ##表名称,多个用逗号分隔(,) generator.tables=sys_privilege_menu ##过滤掉代码表的前缀 generator.table.prefix=sys_ ##浮点型转化为:BigDecimal,否则转化为:Double generator.precision=high ##生成Service domain后缀名称 generator.domain.suffix=Dto 1.3.3 maven插件使用方式 在pom文件中定义插件 com.oneplus.maven.plugins code-generator ${codeGenerator.version} 1.4 代码生成略览 sys_privilege_menu id,menu_desc,menu_name,menu_app_id,menu_create_time,menu_create_pid,menu_create_pname,menu_modify_time,menu_modify_pid,menu_modify_pname,menu_code,menu_status AND id = #{id} AND menu_desc = #{menuDesc} AND menu_name = #{menuName} AND menu_app_id = #{menuAppId} = #{startTime1}]]> AND menu_create_pid = #{menuCreatePid} AND menu_create_pname = #{menuCreatePname} = #{startTime2}]]> AND menu_modify_pid = #{menuModifyPid} AND menu_modify_pname = #{menuModifyPname} AND menu_code = #{menuCode} AND menu_status = #{menuStatus} WHERE id = #{id} ORDER BY ${sortByParamNames} ${sortByParamTypes} ORDER BY ${sortByParamNames} ORDER BY ${sortByParamTypes} INSERT INTO id, menu_desc, menu_name, menu_app_id, menu_create_time, menu_create_pid, menu_create_pname, menu_modify_time, menu_modify_pid, menu_modify_pname, menu_code, menu_status, #{id}, #{menuDesc}, #{menuName}, #{menuAppId}, #{menuCreateTime}, #{menuCreatePid}, #{menuCreatePname}, #{menuModifyTime}, #{menuModifyPid}, #{menuModifyPname}, #{menuCode}, #{menuStatus}, UPDATE menu_desc = #{menuDesc}, menu_name = #{menuName}, menu_app_id = #{menuAppId}, menu_create_time = #{menuCreateTime}, menu_create_pid = #{menuCreatePid}, menu_create_pname = #{menuCreatePname}, menu_modify_time = #{menuModifyTime}, menu_modify_pid = #{menuModifyPid}, menu_modify_pname = #{menuModifyPname}, menu_code = #{menuCode}, menu_status = #{menuStatus}, DELETE FROM