PHP – 架構設計 Data Access Layer 篇

【信息科学与工程学】计算机科学与自动化——第三百零五篇 数据中心 Scale-Up、Scale-Out、Scale-Across 18 普通CDN在遭遇50Gbps攻击时,节点瘫痪率高达70%。云化安全CDN的零信任模型通过将动态身份验证、最小权限访问与CDN的分布式加速能力深度集成,实现安全与性能的协同优化。云化的安全CDN(如腾讯云EdgeOne)与普通的安全CDN在架构、功能、性能和适用场景上存在显著差异。某视频平台接入腾讯云EdgeOne+零信任方案后,全球平均延迟降至46ms,攻击拦截率99.97%,验证了协同模型在高并发场景的普适性。​:随着边缘计算普及,云化安全CDN将逐步取代传统方案,成为高交互、高安全场景的标配基础设施。 阅读详情

PHP – 架構設計 Data Access Layer 篇

在前面 多层次架构设计前言 啰哩啰嗦讲了一堆,就是为了后面的架构设计的文章,作铺陈,这样才能用更宽广的角度来看其中带来的意义。

首先,大概陈述一下架构的关联,如下所述:

首先会先设计 标准 DAL class (STDAL),放置 getData, delete, update 等 标准常见的功能函数
在来设计程式会用到的各种 DAL ,基本上每一个 Table 都需要有一个 DAL 来实现,后面根据 table 应用、画面呈现等需求,也可以一个 table 有多个 DAL ,这各观念类似 View 的概念。
根据 商业逻辑的操作,制作对应的 BLL,像是insert、update 前的资料检查,这部分会根据商务应用的不同而不同,所以下面不做示范。
在来要有一个 DAL 产生工厂(DALFactory),专门用来协助建立 DAL 的实体,因为 DAL 程式档案,可能放在另一台主机,或是 不同目录位置中等等因素,为简化开发人员的负担,所以 DAL 建立方式,统一封装在 DALFactory 里面
接下来,依照上述建了下述程式:

STDAL.php

复制代码
 1 <?php
 2 class STDAL
 3 {
 4     public $TableName;
 5      
 6     public function __construct() {
 7         echo $this->TableName." init STDAL<br>";
 8     }
 9      
10     public function getData()
11     {
12         print "select * from ".$this->TableName."<br>";
13     }
14      
15     public function setDB($db)
16     {
17         echo $db."<br>";
18     }
19 }
20 ?>
复制代码

 

STUser.php

复制代码
1 <?php
2 class DAL_STUser extends STDAL
3 {
4     public function __construct() {
5         $this->TableName = "STUser";
6         parent::__construct();
7     }
8 }
9 ?>
复制代码

 

STDoc.php

复制代码
1 <?php
2 class DAL_STDoc extends STDAL
3 {
4     public function __construct() {
5         $this->TableName = "STDoc";
6         parent::__construct();
7     }
8 }
9 ?>
复制代码

 

下面 DAL 产生工厂,有运用我在 PHP – 类别初探 中所讲的技巧,有兴趣可在去看下。
DALFactory.php

复制代码
 1 <?php
 2 class DALFactory
 3 {
 4     private static $db;
 5      
 6     public static function getInstance($prgName) {
 7          
 8         if(!self::$db) { 
 9             self::$db = $prgName." get DB connection"; 
10         }
11         $class = "DAL_$prgName";
12         $obj = new $class();
13         $obj->setDB(self::$db);
14         return $obj;
15     }
16 }
17 ?>
复制代码

 

上述就已经完成 Data Access Layer 的制作,接下来 我门测试一下,是否正常运作。

test.php

复制代码
1 <?php
2 $prgName = "STUser";
3 $obj = DALFactory::getInstance($prgName);
4 $obj->getData();
5  
6 $prgName = "STDoc";
7 $obj = DALFactory::getInstance($prgName);
8 $obj->getData();
9 ?>
复制代码

測試結果,如下所示:
STUser init STDAL
STUser get DB connection
select * from STUser
STDoc init STDAL
STUser get DB connection
select * from STDoc


原文地址:http://www.cnblogs.com/babydragoner/archive/2012/10/30/2746842.html

一个基于Mysql+C#实现的数据访问层Data Access Layer源码例子 立即下载

相关推荐

RS485接口EMC设计:三级防护与滤波隔离方案

RS485总线在工业现场面临共模噪声、差模脉冲和地电位差三大电磁兼容挑战。通过三级防护架构(气体放电管、PTC热敏电阻、半导体放电管)实现能量梯次泄放,结合共模扼流圈和滤波电容形成完整防护链。该方案经实测可将6kV浪涌下的通信稳定性提升90%,特别适用于工业自动化、电力监控等严苛环境。设计要点包括防护器件选型计算、PCB分区布局及地处理策略,其中GDT通流能力与TSS箝位电压的配合是关键。

weixin_33419305的博客 523

采访分布式数据访问层(Data Access Layer)

分布式(Distributed)数据访问层(Data Access Layer)(以下简称DAL)是综合MySQL Proxy、Memcached、集群等等技术优点而构建的一个软件系统。目的是为了解决在构建大中型网站时遇到的和数据访问有关的诸多问题,如怎么使得切库分表透明化,如何使得缓存存取清除自动化,怎样才能更好地防止服务单点故障等等

Gerry的专栏 1482

《缠中说禅108课》5:市场无须分析,只要看和干

喜欢吹牛皮的,在市场里最常见,例如一种以分析市场、吹牛皮为生的职业,叫什么股评、专家的。此类人不过是市场上的寄生虫,真正的猎手只会观察、操作,用嘴是打不了豺狼的。 市场就是一个狩猎场,首先你要成为一个好猎手,而一个猎手,首先要习惯于无言。如果真有什么真理,那真理也是无言的。可言说的,都不过是人类思想的分泌物,臭气熏天。真不可言说了,就无不可言,言而无言,是乃真言。 一个好的猎手,可以没有嘴巴,但一定会有一双不为外物所动的眼睛,在这眼睛下,一切如幻化般透明。要不被外物所动,则首先要不被自我所迷惑,其实..

BenRen1314的博客 801

MySQL DAL(Data Access Layer)中间件总结

转载于运维社区: https://www.unixhot.com/article/75 DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。用在这里可能不是特别恰当,因为本文主要介绍MySQL访问的中间件,不过也是属于DAL的范畴。本文不会去高可用相关的知识,主要聚焦于MySQL的横向扩展。 我们知道最简单的一种扩展是...

weixin_33795093的博客 307

无人机机场自动化巡检钢铁厂管廊技术方案

摘要:针对钢厂管廊人工巡检效率低、成本高等问题,提出5G+无人机自主巡检解决方案。该系统由智能机库、5G无人机、AI分析平台等组成,可实现自动起降、实时数据传输、缺陷智能识别等功能。无人机配备四合一云台相机,支持42分钟续航和复杂环境飞行,通过深度学习算法自动生成巡检报告。方案实施后可提升巡检效率3倍以上,降低人工成本和安全风险,实现全天候自动化巡检,为钢厂管廊安全管理提供智能化技术支持。(149字)

gxdhlg的专栏 1685

MATLAB图像去噪实战:如何用巴特沃斯滤波器完美去除横条纹(附完整代码)

本文详细介绍了如何使用MATLAB中的巴特沃斯滤波器有效去除图像中的横条纹噪声。通过频域分析和滤波处理,结合完整的代码示例,帮助读者掌握从噪声分析到参数优化的全流程技术,实现高质量的图像去噪效果。

weixin_30566063的博客 562

三层架构之数据层DAL(Data Access Layer)

   using System.Data;using System.Data.SqlClient; namespace Dal{     ///     ///数据处理类。     ///     public class DataClass     {         public static SqlConnection con = new Sq

1024 2088

【Ragflow】9.问答为什么比搜索响应慢?从源码角度深入分析

前几天看到有群友提到一个现象:Ragflow的搜索界面的问答速度很快,但聊天界面的问答速度很慢,究竟是什么原因?在深入挖掘源码之后,逐渐发现了问题的答案。

兴趣使然的创作者 2902

软件系统架构风格【一】:分层架构 (Layered Architecture)

分层架构是软件工程中最基础、最广泛采用的架构风格之一,被誉为“架构的基石”。它通过将系统划分为一系列水平的、职责分明的层次,实现了关注点分离,极大地提升了软件的可理解性、可维护性和可测试性。从早期的单体应用到现代的云原生系统,分层思想始终贯穿其中,是每个开发者和架构师必须掌握的核心范式。

谦与谦寻的神隐 1331

从零做出可发布的2D冒险游戏!Unity全流程实战指南:从资源搭建到打包发布,新手也能跟着做

项目配置→资源导入→核心模块开发→关卡设计→调试→打包发布;玩家控制→敌人AI→道具系统→UI系统→游戏管理器→音效系统;新手开发重点:先实现核心玩法(移动、跳跃、攻击),再补充UI、音效、存档等辅助功能;调试是关键:每实现一个功能就测试,避免最后一堆bug难以定位。从零做一款完整的2D冒险游戏,能快速提升你的Unity综合能力——不仅能掌握C#编程、2D物理、UI系统,还能理解游戏开发的完整流程。先做出基础版,再慢慢迭代优化,你会发现游戏开发并没有想象中那么难。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1176

TVBox源总失效?不如自己搭建一个!告别不稳定!手把手教你自建TVBox源,全网资源尽掌握!

🚀 TVBox源总失效?别慌!手把手教你自建TVBox源,打造一个稳定、海量、无广告的影视宝库!从此告别片荒,尽享丝滑观影体验!

XiaoqiangClub的博客 5455

面向对象分层架构COLA

COLA(Clean Object-Oriented Layered Architecture)架构是一种将系统按照功能划分为多个清晰的层次,并且通过面向对象的设计原则来管理这些层次之间的依赖关系和交互方式的架构模式。它强调通过合理的层次划分、清晰的职责定义以及高内聚低耦合的设计思想,使得系统更加模块化、可扩展、可维护。分层结构:将系统划分为多个层,每一层负责不同的职能,如表示层、业务逻辑层、数据访问层等,确保不同层之间的责任不交叉,避免过度耦合。面向对象设计。

hello.reader 2620

地统计插值学习心得(一)

(创建地统计图层工具用于根据现有的地统计图层或者地统计模型来创建包含新要素数据集的地统计图层,也就是使用构建好的地统计模型用到新的数据集中)这表明,远离极值的区域预测不受极值的影响,并且还表明,包括极值会导致钼元素浓度高的区域周围的预测明显变高。通常,我们使用同一个数据集进行建模和预测,但是在实际插值过程中,这两步的数据可以是不同的,这就是处理极值的诀窍。如果你的数据集有无法忽略的极值时(比如这些钼元素浓度),一种常见的方法是首先显式移除极值进行建模,然后在预测中使用整个数据集(包括极值)。

JData_Engineer的博客 286

PHP – EasyUI DataGrid 资料存取标准化

延续上篇 PHP – EasyUI DataGrid 资料存的方式,本篇将上篇其中资料存取的 dal_user.php 予以标准化,藉由标准化的 dal 才能将知识传承下去并可将程式撰写的方式标准化下来。 一般我们要将程式撰写的方式标准化,都会撰写程式撰写规范文件的方式,来告诉开发人员要如何来撰写程式。 接下来,要来定义 DAL 的 interface,也就是设定 DAL 标准该有...

weixin_30468137的博客 119

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

goalng开发_开发篇

Go 面试,基础知识

qq_46640341的博客 1159

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

juju reactive charm (by quqi99)

sudo snap install charm --classic mkdir -p /bak/work/charms/layers export JUJU_REPOSITORY=/bak/work/charms export LAYER_PATH=$JUJU_REPOSITORY/layers cd $LAYER_PATH charm create simple cd simple sudo ...

技术并艺术着 8719

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6167

Docker从入门到精通

构建镜像的时候,从一个最基本的操作系统开始,每个构建提交的操作都相当于做一层的修改,增加了 一层文件系统,一层层往上叠加,上层的修改会覆盖底层该位置的可见性,这也很容易理解,就像上层 把底层遮住了一样,当使用镜像的时候,我们只会看到一个完全的整体,不知道里面有几层,镜像即创建容器的模版,含有启动容器所需要的文件系统及所需要的内容,因此镜像主要用于方便和快 速的创建并启动容器 镜像含里面是一层层的文件系统,,当后期有额外的需求时,只要在之前的 DockerFile添加或者修改响应的命令即可重新生成新的。

u010055345的专栏 360

数据访问层构建指南:从概念到代码实战

本文聚焦数据访问层(DAL)。DAL 作为应用程序底层,负责与数据库交互,封装数据访问细节,为业务逻辑层提供统一接口,增强代码可维护与扩展性。其设计遵循单一职责、可维护、可测试、性能优化等原则。具体设计时,先分析需求,明确所需访问的数据及操作类型;再依应用特点选数据库与数据访问技术,设计对应数据模型、数据访问接口并实现。文中以 JDBC 实现的 UserDao 为例展示操作。同时强调要做好错误处理、日志记录、事务管理,以转账业务为例说明事务应用。最后指出需借助单元测试与性能优化完善 DAL。

编程在手天下我有的博客 1362

【软件架构】三层架构包括表示层、业务逻辑层和数据访问层简介

1. 表示层 (Presentation Layer)2. 业务逻辑层 (Business Logic Layer, BLL)3. 数据访问层 (Data Access Layer, DAL)优点缺点举例实践中的应用分层架构的挑战结论三层架构是一种常用的软件设计方法,旨在通过将应用程序划分为三个主要的逻辑层次(表示层、业务逻辑层、数据访问层)来促进模块化和分离关注点。这种架构提高了应用程序的组织性、可维护性和可扩展性。表示层负责与用户交互,展示数据和接收用户输入。

weixin_46453070的博客 5318

Openbravo3.0 服务端技术--数据访问层(Data Access Layer)

       Data Access Layer(DAL)描述的是服务端处理客户请求的逻辑,它将逻辑处理和数据处理分离开来,处理逻辑的时候是我们编写java代码,比如前台需要更新一个字段,我们构造一个对象,将这个字段值设置进去,这样的逻辑是我们通过java代码编写来实现。进行数据处理的时候,比如保存,是我们将要保存的对象传给一个接口,接口帮我们处理,至于接口怎么处理我们就不需要管了。     ...

我心依旧 337

三层架构之数据访问层

1、数据访问层的介绍 数据访问层(Data Access Layer,简称DAL)负责与数据库的交互,运行数据库查询并执行更新。简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的映射,以及对象实体的持久化。数据访问层,简单的说,就是在DAL层对数据库进行的SQL语句等操作。 2、数据访问层的命名规范 1、数据访问层以DAL命名或以解决方案名称+DAL的格式命...

琉忆编程库 6253

采访分布式数据访问层(Data Access Layer)作者许超前

分布式(Distributed)数据访问层(Data Access Layer)(以下简称DAL)是综合MySQL Proxy、Memcached、集群等等技术优点而构建的一个软件系统。目的是为了解决在构建大中型网站时遇到的和数据访问有关的诸多问题,如怎么使得切库分表透明化,如何使得缓存存取清除自动化,怎样才能更好地防止服务单点故障等等。DAL是手机之家团队近几年在开发和运营上的经验的总结以及智慧

cnbird's blog 1486

Data Access Layer (DAL) with SqlWrapper library

http://www.codeproject.com/cs/database/SqlWrapper.aspData Access Layer (DAL) with SqlWrapper libraryBy Andrey Shchurov With SqlWrapper, you can easily create your DAL classes writing the most minimum

净心编程 1121
上一篇: 如何获取youtobe中的视频的缩略图等相关信息(调用API返回)?
下一篇: magento如何编写自己的主题模版或修改原有模版?
神灵舞师
博客等级 码龄15年 4粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值