介绍

android使用sqlite做为数据库。使用数据库时需要用SQLiteOpenHelper创建数据库并得到SQLiteDatabase实例db,然后通过db的接口操作数据。

问题

这里面有一个问题:一个SQLiteOpenHelper对应一个database。Demo中给的例子将数据操作和Helper封装到了一起,这样要么一张表一个数据库文件,要么把所有的数据操作方法都放到一个文件中。第一中做法解决不了跨表查询的问题,第二种做法让代码很难维护。所以需要把这些代码分开处理。

解决方案

首先将数据定义和数据操作分开。也就是整个app中只使用一个dbHelper类。所有的表都通过这个实例建立,更新和操作。实现方法也很简单,用工厂方法模式实现。

android中数据库创建操作的模式

如上图,AbstractDataBaseHelper在被调用onCreate和onUpgrade时会调用子类中的getTables,然后调用table接口中的onCreate和onUpgrade。以后在添加table的时候只需要修改DatabaseHelper的getTables。对于表的定义放在具体的table子类中,其各个域可以写成public的,因为在数据操作的时候会调用它们。

对于数据操作层,可以按照表划分成不同的类,每个类在操纵数据库时都可以通过新建DatabaseHelper来获取可读写的数据库。

总结

应用工厂方法模式于数据库表的管理能够将数据定义,数据库创建和数据操作分开,方便日后维护。

相关文章:

  • 2022-12-23
  • 2021-12-28
  • 2021-12-10
  • 2021-08-06
  • 2022-12-23
  • 2021-12-16
猜你喜欢
  • 2021-12-10
  • 2021-12-28
  • 2021-11-30
  • 2021-11-30
  • 2021-11-18
相关资源
相似解决方案