zoukankan      html  css  js  c++  java
  • .NET 开源工作流: Slickflow流程引擎基础介绍(四) -- 多数据库支持实现

    前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出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语句始终透明,可以进行编写或者后期优化。

  • 相关阅读:
    Beware of GPU memory bandwidth
    XNA中的RenderTarget
    Scene Management Culling
    More on Scene Management
    关于quaternion的笔记
    用XNA显示GPU系统信息
    Scene Management Collision Detection
    些关于引擎设计,Scene Management的文章
    XNA下的中文显示
    Skeletal Model and Skinning Animation
  • 原文地址:https://www.cnblogs.com/slickflow/p/5274857.html
Copyright © 2011-2022 走看看