前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个简单的dao设计

一个简单的dao设计

作者头像
码农二狗
发布2018-06-29 10:17:35
4950
发布2018-06-29 10:17:35
举报
文章被收录于专栏:码农二狗码农二狗码农二狗

最近把框架里的数据库连接池做好了,整个dao差不多也算完成了(因为懒,所以部分数据库驱动还没写!).

整个dao由连接对象和解析驱动两个部分组成,大概就是下面这个样子

连接对象主要实现如下方法:

  • addServer 添加连接对象到连接池
  • getServer 从连接池中取出一个对象
  • query 发起只读(R)查询并返回PDO游标
  • exec 发起增删改(CDU)操作,返回受影响的行数

解析器的作用是将操作状态转化为sql语句,主要实现以下功能:

  • distinct 是否使用distinct去重
  • table 设置表/别名
  • sql 直接设置查询语句而不需要构造
  • field 设置要查询的字段
  • join 设置要join的目标
  • union 设置union的目标
  • where 设置查询条件和参数
  • group 设置分组查询
  • having 设置分组查询条件
  • order 设置排序
  • limit 设置要取出的偏移位置和取出数量
  • fetchAll 取出所有数据
  • fetch 取出一行数据
  • fetchColumn 取出第一行第一个字段的数据
  • insert 插入数据
  • update 更新数据
  • query 查询数据
  • delete 删除数据

其中insert,update,query,delete由于数据库之间的差异,由各自的驱动来实现.

最后对dao封装一些常用方法:

  • findAll 根据条件查询所有结果
  • find 根据条件查询一条结果
  • findColumn 根据条件取出指定字段的值
  • insert 插入数据
  • update 根据条件更新数据
  • delete 根据条件删除数据
  • count 根据条件获取满足的记录数

详情可参见MiniCore中的VendorModelDao, VendorDbConnect, VendorDbDaoDriver

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档