为什么getWritableDatabase()是创建SQLite数据库所必需的?

问题描述 投票:-1回答:2

我想创建一个SQLite数据库。 所以我遵循了一个教程,我在MainActivity中创建了这两行来创建数据库。

LugaresDB lugaresDB = new LugaresDB(getApplicationContext());
SQLiteDatabase db = lugaresDB.getWritableDatabase();

我的问题:我只期望创建数据库的第一行,但它没有创建它。 我必须添加第二行。为什么?

android sqlite android-database
2个回答
4
投票

因为这就是框架的实现方式。

不可能确切地说它为什么这样实现,但通常遵循single responsibilityleast astonishment的原则是一个好的设计理念:构造函数只负责对象实例初始化。任何其他操作(例如实际使用文件I / O打开数据库)都是不良副作用。这些其他操作更好地建模为名称中带有动词的方法。


0
投票

因为这是课程实施的方式。你的LugaresDB似乎是SQLiteOpenHelper的子类。第一行创建了一个类SQLiteOpenHelper的辅助对象,它可用于创建SQLiteDatabase的只读或可写实例,这是第二行所做的。

© www.soinside.com 2019 - 2024. All rights reserved.