# codex **Repository Path**: 123zhangzhenbin/codex ## Basic Information - **Project Name**: codex - **Description**: 根据数据库直接生产项目,使用freemark模板。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2017-02-27 - **Last Updated**: 2025-03-12 ## Categories & Tags **Categories**: code-generator **Tags**: None ## README ## 代码自动生成工具 数据库中插入表后,修改codex.properties中配置项tableNames表名和beanNames实体名, 如果是要指定其他包名,修改basePaceageName为指定的包,然后运行codex.bat/codex.sh,则会生成代码到src文件夹,根据需要拷贝到项目目录中即可。 配置详解 ```properties #项目名称 projectName=code-generator #项目显示名称 projectSummary=项目工厂 #项目存放路径 projectDirectory=/home/zzb/Documents/program/code-generator #基础包名,如com.zzb.codegenerator basePackageName=com.zzb.codegenerator #模块包名,附加在基础包名后,如果没有则代码直接创建在基础包下 modulePackageName=core.user #实体类包放在什么地方 entityPackageName=entity #DAO包放在什么地方 daoPackageName=dao #jpa放在什么地方 jpaPackageName=jpa #mybatis放在什么地方 mybatisPackageName=mybatis #service放在什么地方 servicePackageName=service #vo放在什么地方 voPackageName=vo #form放在什么地方 formPackageName=form #mapper xml文件放在什么地方 mapperXMLDirectoryName=resources/mapper #html页面放在什么地方 htmlDirectoryName=resources/templates #css放在什么地方 cssDirectoryName=resources/static/css #js放在什么地方 jsDirectoryName=resources/static/js #控制层包名,如果没有则直接在模块下 controllerPackageName=com.zzb.codegenerator.controller #api接口放在什么地方 apiPackageName=com.zzb.codegenerator.api #jdbc连接驱动 driverClassName=com.mysql.jdbc.Driver #数据库地址 serverHost=localhost #数据库端口 serverPort=3306 #数据库名 schema=db_codegenerator #用户名 jdbcUsername=root #密码 jdbcPassword=root #表名 tableNames=ls_rebate_config #实体名 beanNames=RebateConfig #命名方式,HUMP驼峰,UNDERLINE下划线,NATIVE原生 nameType=HUMP #模板存放位置 templateDir=template #文件输出存放位置 saveDir=src #输出文件的正则匹配 outFilePattern=###out: #模板方式 templateType=freemarker ``` 代码生成freemarker添加修改参照 root为根对象,对应数据类型如下 ``` root为根对象,对应数据类型如下 TableMeta { private GeneratorConfig config; //配置 private String tableName; //表名 private String tableComment; //表名注释 private String beanName; //实体名 private String primaryKeyName; //主键字段名 private TableColumn primaryKeyColumn; //主键字段 private List tableColumns; //字段列表 private Date currentTime; //生成时间 private String systemUserName; //生成用户名 } TableColumn { private String columnName; //字段名 private String propertyName; //项目名 private String columnType; //字段类型 private String columnTypeFullName; //字段类型全名 private String jdbcType; //jdbc字段类型 private String propertyType; //java属性类型 private String propertyFullType; //java属性类型全称 private String columnComment; //字段注释 private Boolean primaryKey; //主键 private Boolean nullable; //是否非空 private Boolean unsigned; //是否非负 private String defaultValue; //字段默认值 private Long maxLength; //字符串类型最大长度 private Long precision; //数字长度 private Long scale; //数字精度 } GeneratorConfig为配置,数据结构如下 GeneratorConfig { private String projectName; //项目名称 private String projectSummary; //项目显示名称 private String projectDirectory; //项目存放路径 private String basePackageName; //基础包名,如com.zzb.codegenerator private String modulePackageName; //模块包名,附加在基础包名后,如果没有则代码直接创建在基础包下 private String entityPackageName; //实体类包放在什么地方 private String daoPackageName; //DAO包放在什么地方 private String jpaPackageName; //jpa放在什么地方 private String mybatisPackageName; //mybatis放在什么地方 private String servicePackageName; //service放在什么地方 private String voPackageName; //vo放在什么地方 private String formPackageName; //form放在什么地方 private String mapperXMLDirectoryName; //mapper xml文件放在什么地方 private String htmlDirectoryName; //html页面放在什么地方 private String cssDirectoryName; //css放在什么地方 private String jsDirectoryName; //js放在什么地方 private String controllerPackageName; //控制层包名,如果没有则直接在模块下 private String apiPackageName; //api接口放在什么地方 private String driverClassName; //jdbc连接驱动 private String serverHost; //数据库地址 private String serverPort; //数据库端口 private String dbName; //数据库名 private String schema; //数据库名 private String jdbcUsername; //用户名 private String jdbcPassword; //密码 private String tableNames; //表名 private String beanNames; //实体名 private String nameType; //命名方式,HUMP驼峰,UNDERLINE下划线,NATIVE原生 private String templateDir; //模板存放位置 private String saveDir; //文件输出存放位置 private String outFilePattern; //输出文件的正则匹配 private String templateType; //模板方式 } ```