我在线搜索并查看了一些Android代码的书籍,发现了一些有矛盾的信息。
在Android Developer's Cookbook中,作者描述了三个类:MyDB.java,MyDBhelper.java和Constants.java。
在线,我发现了一些例子(如果需要我可以链接它们),它们根本就不使用MyDB.java概念。这些示例包括MyDBhelper.java类中的所有内容。
一种方式比另一方好吗?是否有理由将onCreate和onUpdate方法保留在与数据操作/查询类不同的类中?我知道两者都有效,但我正在寻找更广泛接受的方法。
答案 0 :(得分:0)
我认为,一般的概念是您希望将UI逻辑与数据库逻辑分开,并且MyDB类在数据库和UI的细节之间进行接口。
您的UI希望将数据视为Java构造(如集合,字符串等)。 MyDBhelper完成所有实际的IO,将数据从DB读入Cursors。 MyDB类充当中间人,将Cursor数据转换为常规Java构造。
一个例子:
在活动中:
ArrayList(Customer> ac = MyDBhelper.getCustomers();
在MyDB中:
Cursor c = MyDBhelper.getCustomers();
ArrayList<Customer> customers = new ArrayList<Customer>();
// For each row in the returned Cursor, create a Customer object, and add it to an ArrayList<Customer> collection.
// return the ArrayList to the UI
return customers;
MyDBhelper负责创建所需的SQLite查询字符串以获取所需的数据,并调用SQLite数据库 将数据读入光标。它将Cursor返回给MyDB。