代码编程软件生成器(编程代码自动生成)背景
本来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
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>
- 编程课一般是什么价格 网上编程课大概多少钱一节
- 空白符号拿走不谢 空白符号代码复制粘贴
- 菜鸡方舟泰克装备的代码是多少 方舟生存进化物品代码输入没反应
- 现在写代码还吃香吗 写代码的工作有前途吗
- hkd是什么货币
- 上古卷轴代码怎么打 上古卷轴代码
- 上古卷轴5重制版武器代码 上古卷轴5重制版代码
- 上古卷轴5控制台代码大全升级 上古卷轴5控制台代码大全
- c语言是什么类型的编程语言? c语言是高级语言吗
- 怎么编写代码? 怎么学好c语言
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
