EEPlat 的数据层模式

EEPlat 的数据库底层架构能够同时支持多种数据库的集成应用,同时可以支持分布式数据库的集成应用,业务对象通过指定数据源与相应的数据库通过数据源层进行数据交互,数据源层通过数据库种类,自动选用不同的数据库驱动适配器进行数据库的操作,平台工具可以在线更改数据库,无需进入数据库管理工具,数据层提供各类API开发接口,供开发时直接调用(类似于Hibernate等数据层)。

一个数据库可以定义一个数据源,一个业务对象只能关联一个数据源,一个数据源可以有多个业务对象。定义完成后,不同的业务对象可以混搭在一个界面中,如增删改查页面等,平台会自动使用事物保持数据同步进行提交。

如下图所示:

EEPlat 的数据层模式,布布扣,bubuko.com

时间: 2024-08-09 14:44:01

EEPlat 的数据层模式的相关文章

EEPlat PaaS中的多租户数据隔离模式

EEPlat PaaS支持三种租户的数据隔离技术:Sparce Column.tenantId字段隔离.每个租户独立数据库. 1)Sparce Column,和Salesforce Appforce 类似,主要通过一个通用表来存放所有自定义信息,里面有租户字段和很多统一的数据栏位(比如500个).EEPlat PaaS平台通过租户分区的方式进行租户数据的查询优化. 和Appforce 不同的是,EEPlat PaaS平台产品提供了2层的元数据抽象,EEPlat PaaS平台产品中业务元数据和租户

自己在项目中的学习总结:利用工厂模式+反射机制+缓存机制,实现动态创建不同的数据层对象接口

工作一年多,自己小小的心得,方便自己以后查找.首先上架构截图: 且看截图,其中DALFactory为工厂类库,IDAL为接口类库,SQLServerDAL则为实际的数据层实现类库. 1.数据层实现.这个不多说,起始就是编写相关数据操作的方法. public partial class ActivityInfo:IActivityInfo { public int Add(ActivityInfo model) { reutrn 1; } } 2.IDAL接口 public interface I

EF通用数据层封装类(支持读写分离,一主多从)

浅谈orm 记得四年前在学校第一次接触到 Ling to Sql,那时候瞬间发现不用手写sql语句是多么的方便,后面慢慢的接触了许多orm框架,像 EF,Dapper,Hibernate,ServiceStack.OrmLite 等.当然每种orm都有各自的优势,也有不足的地方.园子里也有很多大神开源了他们写的orm,如SqlSugar,Chloe.ORM,CYQ.Data 等.先不说这些开源的orm使用度怎么样,我觉得起码从开源的精神上就很可嘉了,我也曾下载过这几位大神的源码进行学习. 所有o

Web项目演化系列--开启分布式(分离数据层)

前言 原本上一篇是打算写分离数据层的,但是在思考的过程当中发现分离数据层的时候,有一些操作是要依赖分布式锁的,因此先写了分布式锁. 对于有些项目的数据层提供的是业务接口的(返回业务所需的数据),那么当数据层压力逐渐增大的时候,如需要使用缓存的时候,就需要开发人员去修改相应的数据接口使其使用缓存,缓存和各种数据查询接口交错在一起,整个数据层的代码变得非常混乱,连重构都无法进行,只能推倒重做.所以很多的文章中,在讲解数据层的时候,都是使用统一的数据接口,如:Find.Add.Save等,那么当需要缓

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用05:数据层Dao使用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com Dao层说明 Dao层通俗的讲就是数据层.再简单的讲,Dao层主要是用于写sql语句的.可能没有搞过Java的同学会对DAO层比较陌生,甚至不能接受. 但是引入DAO层有非常大的好处: 1. 将业务和数据操作进行剥离.例如将原来的MVC中的module层分割成Service和Dao层.Service主要用来负责业务操作,而Dao主要用来负责数据的操作. 2. 原来的MVC模式,项目开发越久,时

数据层优化-jdbc连接池简述、druid简介

终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化去写,本篇是一个开始.本文会介绍连接池技术并对比目前比较流行的java连接池技术,之后,会把druid整合到项目中来,将技术方案落地,实际整合到项目中,让技术能为我所用. 使用连接池的原因 jdbc的demo //第一步,注册驱动程序 //com.MySQL.jdbc.Driver Class.fo

主程的晋升攻略(9):数据层的演进(下)

缓存为什么能提高性能? 为什么memcached的性能比mysql高? 首要因素是memcached的数据都是位于内存中,mysql的数据可能是位于磁盘里.从IO速度来说,内存IO比磁盘IO会快几个数量级,memcached也就比mysql性能更高.架构和性能优化做到后面,会发现最终限制性能的是硬件瓶颈.例如nginx做静态webserver时,出口流量往往能达到网卡的最大值或出口带宽的最大值.mysql是个性能还不错的db,但它的数据持久化在磁盘上,自然就受限于磁盘IO速度. mysql也是有

如何设计一个坚如磐石的数据层?

在现代软件工程的开发应用和系统设计中,我们一般把软件系统的逻辑层次分为三层:展示层,处理层和数据层.数据层又可细分为缓存层,数据库层和文件存储层,如图: 鉴于创建高性能程序的关键是多花时间在系统设计上,本文主要对软件系统的数据层优化设计做一些阐述和归纳总结. 缓存 在互联网系统中,缓存技术对高并发,高性能的帮助起着功不可没的作用.以目前使用最为广泛的是redis3.0版本为例,其有三种工作模式: 以上3种模式都支持级联部署.针对不同数据量大小,一般可采用两种方案: 如果数据量在10G以内,单ma

ssh下:系统初始化实现ServletContextListener接口时,获取spring中数据层对象无效的问题

想要实现的功能:SSH环境下,数据层都交由Spring管理:在服务启动时,将数据库中的一些数据加载到ServletContext中缓存起来. 系统初始化类需要实现两个接口: ServletContextListener,系统初始化时调用contextInitialized方法缓存数据: ApplicationContextAware,获取Spring的ApplicationContext对象,以获取spring容器管理的service对象. 系统初始化类如下: 1 package com.liz