1 Star 3 Fork 0

xbatis/xbatis-generator-core

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

代码生成器

该模块从xbatis独立而出,已经历多次迭代,可放心使用!!!

maven引入

<dependency>
    <groupId>cn.xbatis</groupId>
    <artifactId>xbatis-generator-core</artifactId>
    <version>1.1.2-M1</version>
</dependency>

添加数据库驱动 例如:


<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>9.1.0</version>
</dependency>

然后,编写一个任意带有 main 方法的类,如下所示

// 根据数据库链接生成
new FastGenerator(new GeneratorConfig(
        "jdbc:mysql://xxx.xx.x:3306/数据库名字",
        "用户名",
        "密码")
        .basePackage("com.test")//根包路径
        ).create();

        or
        
//根据数据源生成
new FastGenerator(new GeneratorConfig(
        DbType.H2,//数据库类型
        dataSource)
        .basePackage("com.test")//根包路径
        ).create();

配置 GeneratorConfig

属性 默认值 说明
charset utf-8 生成文件的字符集
containerType SPRING

容器类型,默认SPRING

目前支持,SPRING、SOLON

swaggerVersion 3 swagger版本:2 代表2.x,3代表3.x
author "" 作者
fileCover true 文件是否覆盖
ignoreView false 是否忽略视图
ignoreTable false 是否忽略表
baseFilePath System.getProperty("user.dir") + "/demo-generate" 根文件路径
basePackage NULL 根包路径
javaPath NULL 基于baseFilePath的java源码文件相对路径
resourcePath NULL 基于baseFilePath的resource文件相对路径
templateRootPath templates 模板根目录,默认即可
templateEngine new FreemarkerTemplateEngine() 模板引擎,默认Freemarker引擎,其他引擎需要自己实现
templateBuilders 包含 实体类,mapper,mapper xml,dao,service,serviceImpl,action等模板生成构建器 模板生成构建器,继承AbstractTemplateBuilder,即可实现自己的生成器(生成自己的页面或其他类等)

配置 TableConfig(表配置)

new GeneratorConfig(...).tableConfig(tableConfig->{
    tableConfig.includeTables("table1","table2");
});
属性 默认值 说明
tablePrefixes 表、视图的前缀,用于生成类名时忽略前缀
includeTables 默认包含所有表、视图
excludeTables 排除表,默认不排除

配置 ColumnConfig(列配置)

new GeneratorConfig(...).columnConfig(columnConfig->{
    
});
属性 默认值 说明
columnPrefixes 列前缀,可进行列字段忽略前缀
versionColumn 指定乐观锁列名
tenantIdColumn 指定租户ID列名
logicDeleteColumn 逻辑删除列名,配置实体类配置:logicDeleteCode 一起使用
disableUpdateColumns 禁止更新的列,这样字段上会生成@TableField(update=false)
disableSelectColumns 禁止Select的列,这样字段上会生成@TableField(select=false)
defaultValueConvert 默认实现 可动态转换数据库的默认值(由静态值转成动态值)

配置 EntityConfig(实体类配置)

new GeneratorConfig(...).entityConfig(entityConfig->{
    entityConfig.lombok(true).excludeColumns("create_time","creater_id");;
});
属性 默认值 说明
excludeColumns 排除列,默认不排除(在有公共实体类的时候很实用)
swagger false 是否开启swagger
serial false 是否序列化,会implements Serializable
createFieldClass true 是否生成静态字段名类Fields
superClass NULL 实体类的父类,例如:com.xx.test.BaseEntity
lombok true 是否开启lombok,这样类上会生成@Data
lombokBuilder false 是否开启lombok buidler,这样类上会生成@Buidler
defaultValueEnable true 是否生成默认值
schema false 注解上是否加上schema信息
packageName DO 实体类包名
nameConvert NULL 实体类名转换器,可以自定义规则,默认大驼峰规则
fieldNamingStrategy NamingStrategy.UNDERLINE_TO_CAMEL 字段名策略,支持 NO_CHANGE ,UNDERLINE_TO_CAMEL
fieldNameConverter NULL 字段名转换器,优先级大于 fieldNamingStrategy
remarksConverter NULL 字段备注转换器,用于实现不一样的备注
defaultTableIdCode NULL 默认TableId代码,数据库非自增时生效,例如@TableId(...)
logicDeleteCode NULL 默认@LogicDelete代码,数据库非自增时生效,例如@LogicDelete(beforeValue="0",afterValue="1",deleteTimeField="create_time")
typeMapping 内置包含各种列类型的java映射 数据库列类型映射,用于定制
alwaysAnnotation false 是否总是生成注解

配置 MapperConfig(mapper类配置)

new GeneratorConfig(...).mapperConfig(mapperConfig->{
    mapperConfig.mapperAnnotation(true);
});
属性 默认值 说明
superClass 默认继承 MybatisMapper 接口 Mapper接口的父接口,例如:cn.xbatis.core.mybatis.mapper.MybatisMapper
mapperAnnotation true 是否开启mybatis @Mapper注解,这样类上会生成@Mapper
packageName mapper mapper类的包名
suffix Mapper mapper类的后缀

配置 MapperXmlConfig(mapper xml配置)

new GeneratorConfig(...).mapperXmlConfig(mapperXmlConfig->{
    mapperXmlConfig.enable(true);
});
属性 默认值 说明
enable false 是否生成mapper xml
resultMap false 是否生成resultMap
columnList false 是否生成列信息,用于select 列
packageName mappers mapper xml的目录名字
suffix "" mapper xml文件的后缀

配置 DaoConfig(dao接口配置)

new GeneratorConfig(...).daoConfig(daoConfig->{
    daoConfig.enable(true);
});
属性 默认值 说明
enable true 是否生成 dao 接口
superClass 默认继承 Dao 接口 dao接口的父接口,例如:cn.xbatis.core.mvc.Dao
generic true 是否启用泛型,启用后会在superclass后面加泛型>Entity,ID>
packageName dao dao接口的包名
suffix Dao dao接口的后缀

配置 DaoImplConfig(dao接口实现类的配置)

new GeneratorConfig(...).daoImplConfig(daoImplConfig->{
    daoImplConfig.enable(true);
});
属性 默认值 说明
superClass 默认继承 DaoImpl 实现类 dao接口的父接口,例如:cn.xbatis.core.mvc.impl.DaoImpl
enable true 是否生成 dao impl接口
generic true 是否启用泛型,启用后会在superclass后面加泛型>Entity,ID>
packageName dao.impl dao实现类的包名
suffix DaoImpl dao实现类的后缀

配置 ServiceConfig(service接口配置)

new GeneratorConfig(...).serviceConfig(serviceConfig->{
    serviceConfig.enable(true);
});
属性 默认值 说明
enable true 是否生成 Service 接口
superClass 默认继承 Service 接口 Service接口的父接口,例如:cn.xbatis.core.mvc.Service
generic false 是否启用泛型,启用后会在superclass后面加泛型>Entity,ID>
packageName service Service接口的包名
suffix Service Service接口的后缀

配置 ServiceImplConfig(service接口实现类的配置)

new GeneratorConfig(...).serviceImplConfig(serviceImplConfig->{
    serviceImplConfig.injectDao(true);
});
属性 默认值 说明
enable true 是否生成 dao impl 接口
injectDao true 是否注入dao
injectMapper true 是否注入mapper
superClass 默认继承 ServiceImpl 实现类 dao接口的父接口,例如:cn.xbatis.core.mvc.impl.ServiceImpl
generic false 是否启用泛型,启用后会在superclass后面加泛型>Entity,ID>
packageName service.impl service实现类的包名
suffix ServiceImpl service实现类的后缀

配置 ActionConfig(action实现类的配置)

new GeneratorConfig(...).actionConfig(actionConfig->{
    actionConfig.enable(true);
});
属性 默认值 说明
enable true 是否生成控制器
swagger true 是否开启swagger
injectService true 是否注入service
superClass NULL action父类,例如:cn.xxx.BaseAction
generic false 是否启用泛型,启用后会在superclass后面加泛型>Entity,ID>
packageName action action实现类的包名
suffix Action action实现类的后缀
returnClass Object get save update delete find等返回的类型
enableSave true 是否生成save方法
enableUpdate true 是否生成update方法
enableDelete true 是否生成delete方法
enableGet true 是否生成get方法
enableFind true 是否生成find方法
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

xbatis代码生成器core 展开 收起
README
Apache-2.0
取消

发行版 (2)

全部
2个月前

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xbatis/xbatis-generator-core.git
git@gitee.com:xbatis/xbatis-generator-core.git
xbatis
xbatis-generator-core
xbatis-generator-core
main

搜索帮助