前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出SQL部分的分别实现。引擎默认数据库为MS SQLSERVER,同时也支持ORACLE, MYSQL, KINGBASE等不同类型的数据库。

1. Dapper对于多数据库实现的支持--SqlDialect

下图给出了Dapper项目中ISqlDialect接口的具体实现类。

2. Slickflow.NET 针对不同数据库的特性实现

在各个数据库特性SQL的写法上,比如SQLSERVER中的TOP语句,对应到其它数据库就不同,需要分别实现。所以引擎创建了DataProvider项目,针对这些特征,来分别实现具体场景的SQL。

3. SQL解析器

兼容多数据库的解析器之前考虑过,是个不错的方向,但是工作量也不小,不同数据库的各种特性都要考虑,缺乏一个统一的实现。而引擎大部分都是标准SQL,只是除了TOP的写法之外,个别的特殊就分别实现一下。但是也非常希望有一个统一的SQL解析器,会是一个非常实用的工具。

4. 总结

通过Dapper和Slickflow的DataProvider,用来实现多数据库的支持,完全可以满足客户不同类型的数据库部署。而且针对开发人员来说,SQL语句始终透明,可以进行编写或者后期优化。

最新文章

  1. Express 4 handlebars 不使用layout写法
  2. ZBrush中的头部模型该如何进行雕刻
  3. 字典dictionary
  4. LK光流算法:提高计算精度和增加搜索范围
  5. VPS centos 6 安装图形界面
  6. mysql 连接多行 合并多行
  7. 清理300多台MySQL数据库的过期binlog日志
  8. 瑕疵(bug)严重性定义
  9. python gzip 压缩文件
  10. NSURLConnection基本使用
  11. 对于反射中的invoke()方法的理解
  12. haproxy内存管理-free_list原理
  13. 51nod_1264:线段相交(计算几何)
  14. Insert Sort Singly List
  15. 51nod1172 Partial Sums V2
  16. django rest framework renderer
  17. 将对象转成 json 以及 将字符串 hash(SHA1) 加密
  18. Visual studio中编译和使用libpng和zlib
  19. Hadoop2.7.4 在 Windows 10(64位) 详细配置
  20. Tomcat7并发和线程数

热门文章

  1. POJ 1664 放苹果 (递推)
  2. TCP四种定时器--学习笔记
  3. 大一下C#五子棋大作业
  4. 使用Filter防止浏览器缓存页面或请求结果
  5. char数组与char指针
  6. 飘逸的python - 编码杂症之在字符串前面加u
  7. psp开发------汉化插件
  8. Android 滑动效果入门篇(二)—— Gallery
  9. 交换a、b
  10. The Romantic Hero