# 拓展与自定义
# 目录结构
screw-driver
┣━ screw-driver-docs 工具的使用帮助文档,使用vuepress编写(https://www.vuepress.cn/)
┣━ src/main/resources/SdTemplates 为模板目录,模板通常不会被直接使用,因为当需要该目录的模板时就会copy模板到根目录的SdTemplates文件夹中,如果不存在就创建
┗━ src/main/java/org/mirrentools/sd/ 代码,基于java1.6编写,maven管理
┣━ common [包]一些通用的工具
┣━ constant [包]一些常量
┣━ converter [包]转换器的接口与实现,分别为接口 > 抽象类(SdAbstract) > 基础实现(SdBasic) > 具体实现(impl包)
┣━ enums [包]一些枚举类
┣━ impl [包]核心工具的基础实现
┣━ models [包]工具的实体类其中db包中update用于创建或修改数据库表信息,query用于查询数据库表信息
┣━ options [包]一些配置信息,其中def包为不同数据库的默认配置
┣━ ScrewDriver (类)核心接口
┣━ ScrewDriverCode (类)生成代码的接口
┣━ ScrewDriverDbUtil (类)数据库相关操作工具
┣━ ScrewDriverException (类)异常类
┣━ ScrewDriverProject (类)创建项目的接口
┣━ ScrewDriverSQL (类)创建或读取操作数据库的接口
┣━ ScrewDriverTemplateEngine (类)模板渲染引擎(生成文件)的接口
┗━ SdType (类)自适应数据类型
# 数据库支持
如果数据库相关操作不兼容,你可以继承ScrewDriverDbUtil接口的实现或converter包中的实现,并重写不兼容的方法后设置 ScrewDriverOptions 为你重写后的实现。
如果你想新增其他数据库支持,大楷你需要做这些操作
- 在org.mirrentools.sd.impl.dbutil包中创建ScrewDriverDbUtil的实现类,可继承SdAbstractDbUtil抽象类,重写抽象类不兼容的方法,可以参考同级实现,推荐命名规则为SdDbUtil新数据库名Impl
- 在org.mirrentools.sd.converter.impl中创建新数据库名相同的包名,并实现converter中的几个转换器,可以参考同级实现,推荐命名SdXxxConverter新数据库名称Impl
- 在org.mirrentools.sd.options.def中创建新数据库配置文件,并在ScrewDriverOptions的init方法中判断配置并初始化新数据库配置,可以参考同级实现,推荐命名规则为ScrewDriver新数据库名Options
- 在org.mirrentools.sd.constant中添加新数据库的常量类
- 在org.mirrentools.sd.enums.SdTypeMode枚举类中添加新数据库类型,并在 SdType 类中添加新数据库词典以及对应的数据类型
# 自定义模板引擎
软件目前提供了FreeMarker与MVEL开箱即用的模板引擎,如果这两个不满足或需要自定义模板,
你可以继承org.mirrentools.sd.ScrewDriverTemplateEngine抽象类并实现render方法,
具体实现可以参考org.mirrentools.sd.impl.ScrewDriverTemplateFreeMarkerImpl 或 ScrewDriverTemplateMvelImpl。
启用自定义模板渲染引擎需要设置 ScrewDriverOptions 的templateEngine属性,既调用setTemplateEngine(你的实现类)
← SqlAssist帮助类说明 关于我们 →