数据库Library预想

7 篇文章 0 订阅
1 篇文章 0 订阅

刚入门安卓那会儿,我使用SQLite数据库存储歌曲信息等都是一个公共的helper类,多个数据表操作的实体类DaoClass和具体的实体类,当时想的是一个实体类的CRUD和一些“定制”的操作都交给对应的一个DaoClass来做,职责划分和对应关系很明确,想改哪一个就改哪一个都很清楚。
time flys 之后觉得这么写数据关系“很累很慢”,因为每个实体类的数据库操作都需要新建一个DaoClass来实现CRUD,但其实每个CRUD都是差不多的,只是tablename、columes不一样,逻辑部分都是一样的,这部分应该能够提取出来,有可能有些是需要“定制逻辑处理的”,但是这部分也可以保留一个入口去支持这个处理。所以我设想了一下改进的数据库处理应该是怎样。

在使用者的角度设计上我会主要使用面向对象的方式(这部分主要处理的是Table的管理和Dao类的CRUD),同时提供面向关系的处理入口来满足复杂的数据操作需求(可能需要的“定制逻辑处理的”方法)。

那比如有一个缓存用户的需求,主要涉及:首先是关于Table的操作createTable、deleteTable(一般不会使用)、updateTable;然后针对这个User操作有addUserToDB、deleteUserFromDB、updateUser、selectUser/getUsers
。针对Table的创建和删除、针对具体的CRUD的操作部分都是可以提取出来的,我可以交由对应的Dao来操作。
对于定制表名或者是属性名的需求可以用注解,那完成这些流程我就需要若干个类来“帮助”。
还有一些问题需要边开发边想的:

  1. 各个Dao文件怎么生成呢?在哪一步生成呢?
  2. 数据库创建怎么尽可能的可配置
  3. 数据库升级怎么尽可能的“傻瓜式”
  4. 数据库的使用怎么尽可能“灵活”

大抵总结如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值