## 6.7 sqltoy跨库说明
sqltoy跨库有3个策略:
1. 通过算法减少数据库方言特性的使用,比如link、旋转、分组汇总、树形表格查询等。
2. 函数替换,sqltoy通过函数自动适配,将mysql的sql可以执行于oracle。
3. 通过多方言sql定义策略,框架根据当前使用数据库类型自动执行该方言的sql
### 6.7.1 Sqltoy函数替换
* 函数替换定义
![](https://img.kancloud.cn/e6/57/e65792106522e2b6d091964400c471b6_661x192.png)
如包含自定义的函数:
* 实现sqltoy里面的IFunction抽象类
![](https://img.kancloud.cn/01/80/0180b39b691adc310dd1e9d116eef466_1147x1057.png)
* 放入函数扩展定义中
FunctionConverts: default,com.xxxx.functions.GroupConcat
Sqltoy中的default默认包含了下面的函数
![](https://img.kancloud.cn/1c/c0/1cc0ed51e3ec783ed5d20b054a56bbd8_226x371.png)
* 函数替换的规则
如果想要用自定义的实现类覆盖sqltoy自带的,只要类名称在不区分大小写的情况下跟sqltoy的函数类名称一致就会优先使用自定义的。
### 8.5 函数替换
很多时候大家强调跨数据库,针对对象的操作较容易实现跨库,但直接编写的sql语句呢?
你的产品用mysql写的,能够直接用于oracle或sqlserver吗?
sqltoy提供了可能!Sqltoy在首次加载或者动态执行时根据数据库类型替换自定义sql语句中的函数
![](https://img.kancloud.cn/f5/5b/f55b8d7eaf180fc05e2f700edfaf6d2d_1021x494.png)
![](https://img.kancloud.cn/63/1f/631f67e9a4755327132785aa864f3c7c_509x809.png)
### 6.7.2 自带获取带方言的sqlId
备注:4.15.9 版本功能
* 不同数据库编写方式
* 数据库类型(小写)\_sqlId
* sqlId\_数据库类型(小写)
* 范例
![](https://img.kancloud.cn/d3/d6/d3d6be9d82a2b2406b9a749c5823d10e_898x816.png)
* 调用方式:
开发者直接使用不带数据库类型的id调用,sqltoy框架执行逻辑:
1. 获取当前执行的数据库类型名称小写,如:mysql
2. 逐步获取get(mysql\_sqlId)、get(sqlId\_mysql),get(sqlId)
![](https://img.kancloud.cn/5a/58/5a58ce219065057ee4d7d561e8c56130_867x165.png)
* 小提示:如果是单一类型数据库,推荐配置sqltoy的方言,会减少一些判断
![](https://img.kancloud.cn/9c/2b/9c2ba09ab38db84e7b1f22edf4ff0406_779x280.png)
- 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注入
- 字段加解密
- 扩展集成