# mybatis-plus-query-generator **Repository Path**: bj_renyong/mybatis-plus-query-generator ## Basic Information - **Project Name**: mybatis-plus-query-generator - **Description**: 基于mybatis-plus的特殊查询的代码生成器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-07-31 - **Last Updated**: 2022-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目介绍 基于mybatis-plus的特殊查询的代码生成器 # 项目版本 ## 版本制定 和mybatis-plus保持一致 如mybatis-plus的版本为3.0.5,则mybatis-plus-query-generator的第一个版本也为3.0.5;后续为3.0.5.1等。 ## 版本发布 ``` # 快照 mvn clean deploy # release mvn clean deploy -Prelease 在master分支打tag ``` # 查询SQL的封装 一条关联查询由如下部分组成: ``` select, table表达式, where条件, group by, having, order by ``` mybatis-plus已经做了相应的封装,mybatis-plus-query-generator将在mybatis-plus的封装基础上做二次开发。 # 代码说明 ## po po分为两类:Config类和Content类 ### Config类 说明:Config类是配置类,对应于配置文件query_sql.xml;如果配置文件结构发生变化,Config类也应随之调整。 * ConfigViews: 对应query_sql.xml的configViews * ConfigQuery: 对应query_sql.xml中的configQuery ### Content类 说明: Content类是内容类,对应于文件模版代码生成的内容。 * ContentQuery: 一条查询的内容信息,是文件模版生成时需要的内容信息。 * ContentField: 一个字段的内容信息 ## plugin 定义代码生成用的插件 ### ICountSqlOptimizer * 说明:查询总数sql的优化器接口 * 实现类: * DefaultCountSqlOptimizer: 缺省的查询总数sql的优化器 ## 其它主要类 ### QuerySqlGenerator 特殊查询代码生成器,代码执行的入口。 * executeGenerate方法负责执行特殊查询的代码生成 代码生成的执行包括三步: 1. 解析配置文件query_sql.xml,得到代码生成的原始信息。 2. 代码生成的原始信息,项目的配置信息,对应数据库的表结构信息,三者结合产生代码生成所需要的所有数据信息。 3. 数据信息结合模板,生成最终的代码文件。 * executeDelete方法负责对生成的查询类文件进行删除 ### QuerySqlXmlService 封装对查询配置文件query_sql.xml的访问。涉及代码生成的第一步。 ### QuerySqlParser 查询SQL解析器。涉及代码生成的第二步。 ### TblParser 表的解析器。涉及代码生成的第二步。 ### QueryFileGenerator 查询文件代码生成器。涉及代码生成的第三步。 ### QueryParam mybatis plus特殊查询传递的参数,是生成代码的方法调用时传递的参数。因为这个类的存在,生成的代码对mybatis-plus-query-generator的依赖是compile的,而不是test的。 # query_sql.xml 项目mybatis-plus-query-demo中有完整的示例。