网站首页 > java教程 正文
私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包。
起因
项目中需要根据数据库表写很多Meta、Dao、Service代码,其中很多代码都是重复而繁琐的。因此如果有一个模板代码的生成器,就可以一定程度提高开发效率。
目标
可配置生成Java Web项目中Dao、Meta、Service层模板代码的生成器。
代码框架
设计思路
项目参考Mybatis generator生成代码的过程,具体步骤分为以下5步。
逻辑步骤
- 解析命令行
- 解析配置文件
- 获取数据表信息
- 生成配置信息
- 生成文件
代码设计
命令解析类 ShellRunner
该类负责解析命令行的命令,解析配置文件并封装所需的数据给代码生成类。
可解析命令有-configfile:指定配置文件所在路径和-overwrite:是否重写目标文件。
配置文件的配置项有:
代码生成类 CodeGenerator
该类负责连接数据库,查询数据表的表信息,将SQL类型映射成Java类型并封装所需的数据给文件生成类。
通过以上几行代码,rs变量中已经获得目标数据表的表信息。
databaseMetaData.getColumns方法的实质是执行了SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME="tableName"语句。
在结果集中,后续处理大致需要以下表信息列。
最后通过JavaTypeResolver中的类型映射(Map<Integer, JdbcTypeInformation> typeMap)和StringUtils中的驼峰命名转换(getCamelCaseString)将SQL信息转换成Java信息。
文件生成类 FileGenerator
该类通过FreeMarker模板引擎组合数据成目标代码文件。
主逻辑如下:
注意
在测试中,Class.class.getClass().getResource("/").getPath();该方法可以获取项目根目录,但是在测试生成的Jar包时,该方法时效。因此在生成Jar包前需要把该行修改成new File("").getAbsolutePath();获取生成路径。
项目结构
配置文件范例
generatorConfig.properties
运行命令范例
实例演示
来源网络,侵权联系删除
猜你喜欢
- 2024-10-04 谷歌Bard可使用C++、Python等20多种语言生成、调试和注释代码
- 2024-10-04 java代码生成word文档(1)(java代码生成xml文件)
- 2024-10-04 GitHub 2W 星:一键生成前后端代码
- 2024-10-04 java 数字签名以及证书生成(电子签章java 数字证书)
- 2024-10-04 【Spring系列】10 MyBatis-Plus 如何自动生成代码 #java
- 2024-10-04 一键生成前后端代码,一个36k星的企业级低代码平台
- 2024-10-04 推荐一个基于SpringBoot + Mybatis + Vue的代码生成器
- 2024-10-04 一个简单的代码生成器(代码生成器思路)
- 2024-10-04 Java 开源的支持多种sql的基于spring boot的代码生成器的调试
- 2024-10-04 java开发开源工具,api文档自动生成工具
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)