db2java-core
db2java-core是核心功能模块,主要功能是把数据库表生成对应的java对象。
支持的数据库:MySQL,PostgreSQL,Oracle,SQL Server,DB2
支持的生成对象:Entity,Mapper(Mybatis),JPA
支持的模板引擎
- FreeMarker (.ftl) - 功能强大的Java模板引擎
- Velocity (.vm) - Apache Velocity模板引擎
- Beetl (.btl) - 国产高性能模板引擎
- Enjoy (.ej) - JFinal框架内置模板引擎
- 可扩展 - 通过实现TemplateEngineProcessor接口支持更多引擎
支持的生成模式
- JPA - 生成JPA实体类
- MyBatis - 生成Entity + Mapper接口 + Mapper XML
- MyBatis-Plus - 生成Entity + Mapper + Service + ServiceImpl + Controller
- Hibernate - 生成Hibernate实体类
- 可扩展 - 通过实现CodeGenerator接口支持更多模式
核心架构
1. 枚举定义
TemplateEngine- 模板引擎枚举,支持4种引擎GenerationMode- 生成模式枚举,支持4种模式
2. 模板引擎架构
TemplateEngineProcessor- 模板引擎处理器接口TemplateEngineFactory- 模板引擎工厂,负责创建和管理处理器- 具体实现:FreemarkerTemplateProcessor、VelocityTemplateProcessor等
3. 代码生成架构
CodeGenerator- 代码生成器接口CodeGeneratorFactory- 代码生成器工厂,负责创建和管理生成器- 具体实现:MybatisCodeGenerator、MybatisPlusCodeGenerator等
4. 数据模型
TableInfo- 表信息类FieldInfo- 字段信息类GenerationConfig- 生成配置类GenerationResult- 生成结果类GeneratedFile- 生成文件信息类
5. 核心控制器
Db2JavaCore- 主要入口类,整合所有功能
使用示例
// 创建生成配置
GenerationConfig config = new GenerationConfig();
config.setEngine("freemarker"); // 支持: freemarker, velocity, beetl, enjoy
config.setMode("mybatis-plus"); // 支持: jpa, mybatis, mybatis-plus, hibernate
config.setOutputPath("/path/to/output");
config.setPackageName("com.example");
config.setAuthor("yexuejc");
config.setLombok(true);
// 生成代码
GenerationResult result = Db2JavaCore.generateCode(tableInfos, config);
if (result.isSuccess()) {
System.out.println("生成成功!生成了 " + result.getGeneratedFiles().size() + " 个文件");
} else {
System.out.println("生成失败: " + result.getErrorMessage());
}
扩展支持
添加新的模板引擎
- 实现
TemplateEngineProcessor接口 - 在
TemplateEngineFactory中注册 - 添加对应的模板文件
添加新的生成模式
- 实现
CodeGenerator接口 - 在
CodeGeneratorFactory中注册 - 定义支持的文件类型和模板映射