编程代码自动生成 代码编程软件生成器

代码编程软件生成器(编程代码自动生成)背景
本来code-builder是专门为MyBatis Enhance来编写的一块代码生成器
code-builder可以用来做什么?
code-builder是一款代码生成maven mojo插件, 通过简单的配置就可以完成数据库内Table转换Entity或者其他实体类, 想怎么生成完全根据你的个人业务逻辑, code-builder尽可能的完善的提供数据库内的一些定义的信息, 让你更方便更灵活的来生成Java文件 。
使用环境
实现方式
是怎么获取到的数据库信息?
code-builder内部采用了java.sql.Connection的MetaData元数据的方式来获取数据库内Table、Column等信息, MetaData是不局限于任何的数据库类型的, 所以code-builder在基础设计上是可以在任何数据库类型中来完成它的生成任务的, 不过初版本仅支持了mysql、MariaDB这两种数据库类型, 在code-builder后期更新版本中会把主流的数据库进行添加 。
生成模板选型
目前code-builder内部采用了freemarker模板来完成实体类的自动生成, 模板由使用者来自定义编写, 内部预留了使用其他模板的方式, 如果你需要使用别的模板, 如:Velocity, 对应添加生成的实现业务逻辑即可 。
怎么配置?
SpringBoot 方式配置
在1.0.5.RELEASE版本添加了集成SpringBoot的starter, 依赖如下所示:
<dependency> <groupId>com.gitee.hengboy</groupId> <artifactId>code-builder-spring-boot-starter</artifactId> <version>1.0.5.RELEASE</version></dependency>

  • 如果你是用的Gradle构建工具, 那么复制下面的内容到你的build.gradle
compile group: 'com.gitee.hengboy', name: 'code-builder-spring-boot-starter', version: '1.0.5.RELEASE'那么我们在application.yml或者application.properties配置文件内该怎么配置相关的参数呢?
hengboy: code: builder: execute: true configuration: package-prefix: com.code.builder.sample.codebuildersample templates: - name: entity.ftl packageName: model fileSuffix: Entity - name: service.ftl packageName: service fileSuffix: Service - name: controller.ftl packageName: controller fileSuffix: Controller generator-by-pattern: '%app_user_info%' db-type: mysql engine-type-enum: freemarker builder-dir: classes.templates.builder target-dir: generated-sources.java tables: - app_shop_type - app_user_exchange_good ignore-class-prefix: App
每个参数的具体介绍请往下看 。
Maven Plugin 方式配置
由于code-builder是Maven mojo插件的形式创建的, 所以我们只需要在项目的pom.xml文件内添加plugin插件配置, 如下所示:
<plugin> <groupId>com.gitee.hengboy</groupId> <artifactId>code-builder-maven-plugin</artifactId> <version>1.0.5.RELEASE</version> <executions> <execution> <goals> <goal>generator</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> </dependencies> <configuration> <execute>true</execute> <dbType>MySQL</dbType> <dbDriverClassName>com.mysql.jdbc.Driver</dbDriverClassName> <dbName>xxxx</dbName> <dbUserName>xxxx</dbUserName> <dbPassword>xxxxx</dbPassword> <dbUrl>jdbc:mysql://xxx.xx.xx.xx:3306</dbUrl> <tables> <table>app_shop_type</table> <table>app_user_exchange_good</table> </tables> <engineType>FREEMARKER</engineType> <generatorByPattern>%app_user_info%</generatorByPattern> <ignoreClassPrefix>App</ignoreClassPrefix> <builderDir>classes.templates.builder</builderDir> <builder> <packagePrefix>com.code.builder.sample</packagePrefix> <templates> <template> <name>entity.ftl</name> <packageName>model</packageName> </template> <template> <name>service.ftl</name> <packageName>service</packageName> <fileSuffix>Service</fileSuffix> </template> <template> <name>mapper.ftl</name> <packageName>mapper</packageName> <fileSuffix>Mapper</fileSuffix> </template> </templates> </builder> </configuration></plugin>


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。