🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
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接口)。