关于框架数据库接口开发的心得

背景

  最近一直使用PhalApi开发接口,由于业务需求需要用到mongodb,发现框架内就没有mongo的驱动,心血来潮想要自己加上mongo驱动,但是悲剧的发现,框架作者居然没有给出一个db的接口。好吧,完全自己来!由于我也是第一次尝试去写框架的数据库接口,不知道从何下手,就是一个字“瞎”。但是为了实现数据库接口的编写,我想到了“借鉴”,所以,去github上clone了TP,CI,YII分别分析了这些框架的数据库部分是如何设计的,然后就有了本文。

学习

  看完了YII的相关数据库驱动,大概总结了下,就是下图了。结合ThinkPHP的数据库原理,发现其实大部分的框架在DB操作部分都差不多,基本都是这个样子。难就难在如何平滑的切换数据库,就是说我在不改变现有代码只是改变配置的情况下,就可以适用不同的数据库了。想要实现这个目的,不同的框架的做法都不太一样,有的选择在组合SQL语句时候处理,有的选择在数据库驱动的地方做处理,甚至有人在两个步骤里都做了处理。但是我发现SQL的处理和数据库驱动必然是需要去做适配的,那么我决定将两个合二为一,做一个数据库适配层,在其上层做数据库连接层,统一函数名,统一参数格式,那么轻松实现数据库的平滑切换的工作喽。

  

    

时间: 2024-10-07 00:34:17

关于框架数据库接口开发的心得的相关文章

Android之使用Android-query框架进行开发(一)(转载)

开发Android使用Android-query框架能够快速的,比传统开发android所要编写的代码要少得很多,容易阅读等优势. 下载文档及其例子和包的地址:http://code.google.com/p/android-query/ 以下内容是我学习的一些心得分享: 第一节: // 必须实现AQuery这个类 AQuery aq = new AQuery(view); // 按顺序分析:取得xml对应控件id,设置图片,设置可以显示,点击事件(方法someMethod必须是public修饰

使用 CodeIgniter 框架快速开发 PHP 应用(一)

原文:使用 CodeIgniter 框架快速开发 PHP 应用(一) 对 CodeIgniter 的介绍 大多数PHPer都想写出运行状态良好的应用程序,而且希望尽可能做得简单且不费事.这篇文章是有关 CodeIgniter的(以后简称CI),CI是一个达成上面目的的所谓框架. 如果你只是要达成一个最终的结果,而把中间所有的编码细节和复杂统统丢给一个框架,CI是你最好的朋友. CI有很多优点:免费, 轻量级, 容易安装, 它能使你的编程生涯变得很轻松. 这一章我们会告诉你: . CI 能为你做什

Java开发学习心得(二):Mybatis和Url路由

Java开发学习心得(二):Mybatis和Url路由 序号接上一篇Java开发学习心得(一):SSM环境搭建 1.3 Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .MyBatis是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建 选择Linux桌面环境Deepin2014.1下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的. 先说vim和DBGp插件. Deepin2014.1简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了.可以节省不少步骤.这里提供一个vim的配

sina微博开发学习心得

大家都知道新浪微博上有很多附加应用,那些东西是怎么做出来的呢,这几天开始学习sina微博的开发,sina为我们提供了很多接口,根据这些接口就可以开发基于微博的一些应用! 首先一些需要用到的技术要点 一.新浪微博部分: 1.新浪微博 Aouth 认证 2.新浪微博 获取微博列表 3.新浪微博 发表微博 4.新浪微博 评论微博 5.新浪微博 转发微博 二.其他技术要点: 1.Android Layout 布局 2.Android自定义 UI 3.Android Handler 3.Android S

记一次爬虫框架的开发经历

爬虫是我看过的所有程序中最酷的,因为爬虫可以真正帮你完成一些费事繁琐的工作,比如搜集图片. 咳咳~因为某个网站会把图片打包成种子,发布,并且提供下载,对于老司机来说是省时省力的事情,但是种子是会失效的.有一些很想看的图集想看但是种子失效了,这时候会让人很尴尬,还好,种子没了但是官网图片还在!所以当时就想要是自己写一个爬虫去帮我完成这些另存为图片的工作就好了. 我是想也没想,自己开始筹划. 开始的第一步自然而然是收集一些网页的前端代码(也就是在浏览器里面右键->网页源代码里面查看).因为我要知道这

开发体验心得总结

开发体验心得总结 Part One 阅读总结 [No Silver Bullet: Essence and Accidents of Software Engineering] 本文介绍了软件开发的要点以及开发过程中将碰到的问题,目的在于说明在软件开发中没有“银弹”,也就是没有解决一切问题的绝对武器. [There Is a Silver Bullet] [Big Ball of Mud]

使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发人员更轻松的打造出功能丰富而且美观的UI界面.开发人员不须要编写复杂的javascript,也不须要对css样式有深入的了解,开发人员须要了解的仅仅有一些简单的html标签.jQuery EasyUI为我们提供了大多数UI控件的使用

基于MINA框架快速开发网络应用程序

1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架.通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中.MINA框架的应用比较广泛,应用的开源项目有Apache Directory.AsyncWeb.Apache Qpid.QuickFIX/J.Openfire.SubEthaSTMP.red5