3 **技术架构**
架构原则:sqltoy-orm是协助开发者的工具之一,目标是要解决99.5%的问题而不是覆盖100%的问题(目前从复杂的ERP项目、数据分析报表项目的实践角度看基本100%覆盖)。
![](https://img.kancloud.cn/2a/b2/2ab2bbb74d12cc534ac8af35a2484247_1152x648.png)
Sqltoy目前要跟spring结合使用:
![](https://img.kancloud.cn/2f/e4/2fe4d55c41127ec93fa25a859d43a835_1351x499.png)
sqltoy-orm框架代码目录结构:
![](https://img.kancloud.cn/37/0e/370e0c7b8558551555f1bd5e20bb1543_476x1037.png)
**源码阅读说明**:
- SqlToyContext:作为整体上下文配置,是整个框架的根文件。
- SqlToyConstants:提供sqltoy的一些常量配置,并可以通过sqltoy-default.properties加载常量参数,如果要修改常量可以通过sqltoyContext中的dialectConfig来额外设置。
- Config:通过SqlToyContext的配置读取配置sql的xml文件为每个sql产生一个SqlToyConfig对象模型放入Map、通过EntityManager加载VO类、加载缓存翻译配置等。
- support包:主要是BaseDaoSupport类,所有对外提供数据库交互的基类,通过继承此类来提供各种操作功能实现。
- utils:一些内部工具类。
- dao、service包:提供了SqlToyLazyDao(继承BaseDaoSupport)供项目中的service直接调用从而避免额外写Dao类;SqlToyCRUDService提供基本的Service操作实现,可以让开发者直接在Action层调用Service来完成简单的CRUD操作。
- dialect:不同数据库方言的具体功能实现,主要提供DialectFactory来判断当前数据库类型并调用具体的数据库实现逻辑。
- translate:缓存翻译的接口定义和默认实现以及分页优化器接口定义和默认实现。
- executor:目前提供查询执行器和唯一性验证的查询执行器,提供通过链式构造查询条件对象模型。如:
new QueryExecutor(sql,paramsName,paramsValue).resultType(resultClass).humpMapLabel(humpLabel).dataSource(dataSource);
- plugins:sharding、function、主键策略基本接口和默认实现;表主键策略默认提供了UUID和22位、26位、snowflake唯一数字产生策略类(实现IdGenerator接口)。
- 1.简介
- 开发历程
- 技术架构
- 问答了解
- 版本历史
- update-5.1.4、4.18.43
- update-5.1.2
- 早期历史
- 5.1.15.rc1
- 2.快速使用
- 示例与环境
- quickvo工具使用
- 用法说明
- 关键注意事项
- 严格VO(DTO)和POJO(entity)分层
- 3.教程
- spring项目搭建
- Toy-ORM 配置
- 详细配置参数
- 缓存功能
- 缓存配置、缓存扩展
- 扩展缓存框架配置
- 缓存翻译
- 其他缓存应用场景
- 公共功能
- 表(对象)关联
- 公共字段赋值
- 链式操作
- DTO与POJO互转
- 对象操作
- save + update
- delete + trunk
- load加载数据
- 唯一验证
- 树形数据
- sharding分库分表
- SQL操作
- sql文件规则
- filters说明
- 缓存翻译
- 分库分表
- 汇总、环比
- 行列转换
- 数据脱敏
- 格式化-数字日期
- sqlToy的sql查询基本规则
- Sql查询功能
- load操作
- get操作
- find操作
- 分页查询
- 并行查询
- execute操作
- executeSql
- executeStore
- 数据库特性
- 主键策略
- JSON等类型扩展支持
- 跨库说明--异种库兼容
- 数据库保留字处理
- 多源-多库-异库
- 多数据源
- Mongodb支持
- ElasticSearch支持
- 高级扩展
- 补充-if+fast+blank+value+loop
- 高级功能
- 完美sql
- 快速分页
- 缓存翻译
- 防止sql注入
- 字段加解密
- 扩展集成