{"id":14983147,"url":"https://github.com/qixing-ai/codefactory","last_synced_at":"2025-07-19T07:04:16.919Z","repository":{"id":41035712,"uuid":"213306289","full_name":"qixing-ai/codefactory","owner":"qixing-ai","description":"用于生成代码的工具，比其他代码生成工具方便","archived":false,"fork":false,"pushed_at":"2024-05-16T17:18:22.000Z","size":88,"stargazers_count":8,"open_issues_count":2,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T11:23:11.341Z","etag":null,"topics":["codegen","generator","java","springboot","springmvc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qixing-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-07T05:59:18.000Z","updated_at":"2022-09-24T06:43:09.000Z","dependencies_parsed_at":"2024-10-12T02:41:01.736Z","dependency_job_id":null,"html_url":"https://github.com/qixing-ai/codefactory","commit_stats":{"total_commits":48,"total_committers":5,"mean_commits":9.6,"dds":0.6666666666666667,"last_synced_commit":"1185f21e2d3627b1d73d89a5655ea8ee54aeafb9"},"previous_names":["qixing-ai/codefactory","heyi-core/codefactory"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qixing-ai/codefactory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qixing-ai%2Fcodefactory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qixing-ai%2Fcodefactory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qixing-ai%2Fcodefactory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qixing-ai%2Fcodefactory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qixing-ai","download_url":"https://codeload.github.com/qixing-ai/codefactory/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qixing-ai%2Fcodefactory/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265899720,"owners_count":23845874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codegen","generator","java","springboot","springmvc"],"created_at":"2024-09-24T14:06:48.454Z","updated_at":"2025-07-19T07:04:16.852Z","avatar_url":"https://github.com/qixing-ai.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 使用规范\n## 第一步:引入pom依赖\n    \u003cdependency\u003e\n         \u003cgroupId\u003ecom.github.heyi-core\u003c/groupId\u003e\n         \u003cartifactId\u003egenerator\u003c/artifactId\u003e\n         \u003cversion\u003e4.1.2\u003c/version\u003e\n         \u003cscope\u003etest\u003c/scope\u003e\n    \u003c/dependency\u003e\n    scope方式为test,代码不会被打包进去\n## 第二步:创建文件与目录\n    所有文件皆在项目的test目录下\n    1.启动文件 \n        随意命名 执行下main方法即可\n         public static void main(String[] args) {\n                GService cgm = new GService();\n                cgm.run();\n            }\n    2.配置文件\n        必须以generatorConfig.properties命名,将文件生成到resource下\n    3.在resource目录下生成文件夹,随意命名,用于存放生成所属的ftl模板\n## 第三步:创建配置文件(generatorConfig.properties)\n    ###数据库连接\n    jdbc.url=jdbc:mysql://192.168.1.121:3306/database?useUnicode=true\u0026characterEncoding=UTF-8\u0026useSSL=false\n    ###数据库\n    jdbc.database=database\n    ###数据库用户名\n    jdbc.username=database\n    ###数据库密码\n    jdbc.password=database\n    ###需要生成的表名\n    (1.如果要写所有表 target.table=*\n     2.如果要写以us开头的所有表   target.table=us*\n     3.如果要生成多张表  target.table=user,role\n    )\n    target.table=user\n    ###生成的主目录\n    base.package=com.heyi.mypro\n    ###mapper文件生成主目录\n    mappers.file= /src/main/resources/mappers\n    ###签名信息\n    author=name\n    ###配置\n    template.file=template\n    ###mapper配置\n    mappers.file=/src/main/resources/mappers\n\n                    \n## 第四步:书写生成代码模板 \n   存放代码模板 \n    命名规则为后缀 以user为例 model模板为 .java.ftl  生成出的文件为 User.java \n                    controller模板为 Controller.java.ftl 生成出的文件为 UserController.java               \n## 第五步:运行生成 \n     运行生成代码,根据resource下template模板生成,创建了几份文件 生成几份代码\n     如果你的模板外有一个指定生成位置 \n        例如user.java文件要生成到user下面model文件夹下 \n        那就在template创建一个model文件夹 将你的ftl模板放到这个model文件夹下 那生成出来的文件路径就是 XXXX/user/model/user.java \n     如果你的模板不需要指定生成位置\n        那就将你的ftl生成模板全部放到template下即可\n        生成的model,controller,service,dao的文件在一个文件夹内,例如 XXXX/user/user.java XXXX/user/userController.java\n        生成的mapper文件在resource/mappers文件夹下\n     配置文件mappers.file是你mapper文件的主目录\n        如果你设定了指定mapper的生成位置\n            例如你要讲user的mapper文件生成到user文件夹下,那就创建一个user文件夹,将mapper的ftl模板放到user文件夹下,\n            那么他的生成文件路径为 mappers.file/user/userMapper.xml\n        如果你不指定生成位置\n            那就生成的所有mapper文件都是在mapper.file路径下\n## 使用参数详解\n    书写模板时按照freemarker的书写规范书写即可   \n    引入数据库的表信息 例:表的注释(${table.tableComment})  \n    1.数据库的全部表信息:  \n        ${table.dataBase}  数据库\n        ${table.author}  创建人\n        ${table.createTime}  创建时间\n        ${table.tableName}  表名称\n        ${table.tableNameLower}  表名称全部小写\n        ${table.tableNameLowerCamel}  表名称首字母小写其余驼峰\n        ${table.tableNameUpperCamel}  表名称首字母大写其余驼峰\n        ${table.tableComment}  表注释\n        ${table.tablePackage}  包名称\n        ${table.projectPath}  项目路径\n        ${table.savetPath}  项目路径\n    2.数据库表中字段信息 如需获取每个表字段信息 freemarker语法遍历colums即可  \n        colum 为遍历后命名的每个表字段对象  \n        ${colum.columComment}  字段注释\n        ${colum.jdbcType}  数据库数据类型\n        ${colum.sqlType}  sql类型\n        ${colum.columName}  字段名称\n        ${colum.columNameLower}  字段名称全小写不含下划线\n        ${colum.columNameLowerCamel}  字段名称首字母小写其余驼峰\n        ${colum.columNameUpperCamel} 字段名称首字母大写其余驼峰\n    3.主键信息\n        key为主键字段的对象\n        ${key.columComment}  主键注释\n        ${key.jdbcType}  数据库数据类型\n        ${key.sqlType}  sql类型\n        ${key.columName}  字段名称\n        ${key.columNameLower}  字段名称全小写不含下划线\n        ${key.columNameLowerCamel}  字段名称首字母小写其余驼峰\n        ${key.columNameUpperCamel} 字段名称首字母大写其余驼峰\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqixing-ai%2Fcodefactory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqixing-ai%2Fcodefactory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqixing-ai%2Fcodefactory/lists"}